C言語基礎学習ノートday 3
62201 ワード
注:本ノートは直接アップロードで、markdownノートの文法の違いにより、表示に少し違いがあります.オリジナル版が必要な場合は、次のように連絡してください[email protected].(メールのテーマは:ノートを勉强して、本文の必要なノートの名前、直接このノートのウェブサイトをコピーすることができます).同时に皆さんと一绪に交流を学ぶことを歓迎します.
day3
@toc
一、一次元配列
1.配列の定義
配列の本質は、メモリの中で連続的な空間であることです.各要素のタイプは同じです.
2.連続的な付与操作
3.配列の初期化
4.配列内の最大要素の値を求める
配列の最初の要素をデフォルトで最大の要素に設定し、各要素を比較します.
5.配列内の最小値を求め、最小値の番号を求める
6.配列要素と
7.印刷配列の平均値より大きいすべての値とその下付き文字のプログラムは確定していません
8.配列逆置きは単一要素の交換 を実現する.配列の前半と後半の交換を実現 法一:直接元素交換 法二:下標 を交換することによって
9.水仙の花の数100都1000の間の水仙の花の数を探します;
10.1つの配列内のすべての奇数要素の和を求める
11.3-100の素数を求める
プログラムに問題があります注意:素数:1と自身を除いていかなる数にも除去されません;(すなわち、2からi-1の間の任意の数で割り切れないことに相当する)
2 D配列2 Dはいれつ
表として近似できる.
1.2 D配列の定義
2.配列サイズ
3.配列の値出力
注意printfの位置
4.1つの2次元の配列の各行の各列の和を求めます
注意printfの位置各行の和:
各列の合計:
5.泡立ちソート
day3
@toc
一、一次元配列
1.配列の定義
#include
int main()
{
int array[10]; // , array, , 0-9;
array[0] = 20;
array[9] = 100;
printf("%d
",array[0]);
printf("%d
",sizeof(array));// , 40
return 0;
}
配列の本質は、メモリの中で連続的な空間であることです.各要素のタイプは同じです.
2.連続的な付与操作
int main()
{
int i;
for(i = 0;i < 10;i++)
{
array[i] = i;
}
return 0;
}
3.配列の初期化
int main()
{
/* ( , , )
int array[10] = {1,1,3,5,5,6,9,6,8,5};//
int array[10] = {100,2,3,3,4,9};// ,
int array[10] = {0}; // 0
// 0
int i;
for(i = 0; i < 10; i++)
{
array[i] = 0;
}
*/
int i;
for(i = 0;i < 10;i++)
{
printf("array[%d] = %d
",i,array[i]);
}
return 0;
}
4.配列内の最大要素の値を求める
配列の最初の要素をデフォルトで最大の要素に設定し、各要素を比較します.
int main()
{
int array[5] = {2,3,5,6,7};
int max = array[0];
int i;
for(i = 1;i < 5;i++) // , , 1 ;
{
if(max < array[i])
max = array[i];
}
printf("max = %d
",max);
return 0;
}
5.配列内の最小値を求め、最小値の番号を求める
int main()
{
int array[5] = {2,3,5,6,7};
int min = array[0];
int index = 0;// , 0 ; 0;
int i;
for(i = 1;i < 5;i++) //
{
if(min > array[i])
index = i;
min = array[i];
}
printf("min = %d,index = %d
",min,index);
return 0;
}
6.配列要素と
int main()
{
int array[10] = {1,2,3,4,5,6,7,8,9,0};
int i;
int sum = 0;
for(i = 0; i < 10; i++)
{
sum += array[i];
}
printf("sum = %d
",sum);
return 0;
}
7.印刷配列の平均値より大きいすべての値とその下付き文字のプログラムは確定していません
#include
int main()
{
int array[10] = {1,2,3,4,5,6,7,8,9,0};
int i;
float aver;
int sum = 0;
int index = 0;
for(i = 0; i < 10;i++)
{
sum +=array[i];
}
aver = sum /10.0;
printf("The following elements are greater than the average value of the array. The addresses are:
");
for(i = 0;i < 10;i++)
{
if(array[i] >aver)
{
index = i;
printf("array[%d] = %d,index = %d
",i,array[i],index);
}
}
}
8.配列逆置き
#include
int main()
{
int array[10] = {1,2,3,4,5,6,7,8,9,0};
//
int i;
int tmp = array[0];
array[0] = array[1];
array[1] = tmp;
for(i = 0;i < 10;i++)
{
printf("array[%d]=%d
",i,array[i]);
}
return 0;
}
#include
int main()
{
int array[10] = {1,2,3,4,5,6,7,8,9,0};
int i;
for(i = 0; i <= 4; i++)
{
int tmp = array[i];
array[i] = array[9-i];
array[9-i] = tmp;
}
for(i = 0;i < 10;i++)
{
printf("array[%d]=%d
",i,array[i]);
}
return 0;
}
#include
int main()
{
int array[10] = {1,2,3,4,5,6,7,8,9,0};
int i;
int min = 0;//
int max = 9;//
while(min <max)
{
int tmp = array[min];
array[min] = array[max];
array[max] =tmp;
min++;
max--;
}
for(i = 0;i < 10;i++)
{
printf("array[%d]=%d
",i,array[i]);
}
return 0;
}
9.水仙の花の数100都1000の間の水仙の花の数を探します;
#include
int main()
{
int i;
for(i = 100; i < 1000;i++)
{
int i1 = i%10;
int i2 = i/10%10;
int i3 = i/100;
if(i1*i1*i1 + i2*i2*i2 + i3*i3*i3 == i)
{
printf("%d
",i);
}
}
return 0;
}
10.1つの配列内のすべての奇数要素の和を求める
#include
int main()
{
int array[10] = {1,3,4,7,8,0,9};
int i;
int sum = 0;
printf("The odd numbers in the array are as follows:
");
for(i = 0; i < 10;i++)
{
if(array[i] % 2 != 0)
//if(array[i]% 2 == 1)
{
sum += array[i];
printf("array[%d] = %d
",i,array[i]);
}
}
printf("sum = %d
",sum);
return 0;
}
11.3-100の素数を求める
プログラムに問題があります注意:素数:1と自身を除いていかなる数にも除去されません;(すなわち、2からi-1の間の任意の数で割り切れないことに相当する)
#include
int main()
{
int i;
int j;
int status = 0;
for(i = 3;i < 101;i++)
{
for(j = 2;j < i;j++)
{
if((i%j )== 0)
{
status = 1;
break;
}
}
if(status == 0)
{
printf("%d
",i);
}
}
return 0;
}
2 D配列2 Dはいれつ
表として近似できる.
1.2 D配列の定義
#include
int main()
{
//
int array[2][3];// , array[3]
array[0][0] = 0;// 0 0
array[1][2] = 0;// 1 2
//
int a[3][4] = {{1,2,3,4,},{5,6,7,8},{9,10,11,12}};
int a[3][4] = {0};// 0
return 0;
}
2.配列サイズ
int main()
{
int array[2][3] = {{1,2,3},{4,5,6}};
printf("%d
",sizeof(array));// 24
printf("%d
",sizeof(array[0])); // 0 , 12
printf("%d
",sizeof(array[0][0]));// 0 0 , 4
return 0;
}
3.配列の値出力
注意printfの位置
#include
int main()
{
int array[2][3] = {{1,2,3},{4,5,6}};
int i,j;
for(i = 0; i < 2;i++)
{
for(j = 0; j < 3;j++)
{
printf("array[%d][%d]= %d
",i,j,array[i][j]);
}
}
return 0;
}
4.1つの2次元の配列の各行の各列の和を求めます
注意printfの位置各行の和:
int main()
{
int array[3][5] = {{1,3,4,5,9},{4,9,5,0,8},{9,3,4,23,4}};
int i,j;
for(i = 0; i <3;i++)
{
int sum = 0;
for(j = 0;j < 5;j++)
{
sum += array[i][j];
}
printf("%d
",sum);
}
return 0;
}
各列の合計:
int main()
{
int array[3][5] = {{1,3,4,5,9},{4,9,5,0,8},{9,3,4,23,4}};
int i,j;
for(j = 0; j < 5; j++);
{
int sum = 0;
for(i = 0; i < 3;i++)
{
sum +=array[i][j];
}
printf("%d
",array[i][j]);
}
return 0;
}
5.泡立ちソート
int main()
{
int array[10] = {1,4,8,0,9,34,98,100,5,3};
int i;
int j;
for(i = 0;i < 10;i++)
{
for(j = 1; j < 10-i;j++)
{
if(array[j-1] >array[j])
{
int tmp;
tmp = array[j];
array[j] = array[j-1];
array[j-1] = tmp;
}
}
}
for(i = 0;i < 10;i++)
{
printf("array[%d] = %d
",i,array[i]);
}
return 0;
}