- 一维数组
- 二维数组
- 自我总结
小总结:
1.数组名是一种地址常量,存放数组内存空间的首地址
2.数组元素的引用要指定下标
数组名 【下标】
3.一维数组初始化
类型名 数组名 【数组长度】= {出值表}
eg.int a [3] = {1,2,3};
规定:c语言只有静态存储数组才能初始化,但c编译系统都被允许赋初值
,静态储存的数组没有初始化直接赋值零
如果只对部分元素初始化,数组长度是不能省略的
4.斐波那数列
f [0] = f [1] =1
f [n] =f [n-1] =f [n-2]
5.注意:
<1>for () 后面没有;
<2> define SIZE 5 -----5指输入个数
6. 投票情况统计重点:count [response] ++;
7. 二维数组找出最大小值及行列下标:
先输入数:
printf ("");
for()
for()
scanf ("%d", &a[][])
按矩阵形式输出:
for () {
for ()
printf ("%4d", a[i][j]);
printf ("n");
}
找最值以最大值为例:
先假设a[0][0]最大
如果a[i][j]比假设值大
再假设a [i][j]是新的最大值row=i;col=j;
8.转置行列互换
temp=a[i][j];
a [i][j] =a [j][i];
a[i][j] =temp;
9.闰年:能被4整除但不能被100整除或者能被400整除
闰年二月29天平年二月28天
10.回文就是字符串中心对称
eg:abcba abccba
11.结束符’n’
12.
printf("%pn", &a[0]);
printf("%pn", &a[1]) ;这两行代码:能实现储存方式 一维数组
数组的定义和使用
//数组的定义和使用
//数据类型 数组名【元素个数】={值1,值2}
#include
#include
#include
#include
#include
int main()
{
//1.输出指定位置元素
int a[3]={1,2,3};//定义数组 下标为个数
printf("%dn", a[0]);//下标从零开始 下标表示其中一个元素
//2.数组元素进行计算
a[0]=a[2];
a[1]=a[0]*2;
for (int i=0;i<3;i++)
{
printf("%dn",a[i]);
}
//0k了
//3.数组在内存中储存方式和大小
printf("%pn", &a[0]);
printf("%pn", &a[1]) ;
return 0;
}
小猪称重
//小猪称重 #include#include #include #include #include #define SIZE 5 int main() { int a[SIZE]; for (int i=0;i max) { max=a[i]; } } printf("最重小猪体重为:%dn", max); return 0; } //错误注意事项: //1.for() 后面没有; // 2.printf在for{}外面 //3.define SIZE 5指输入五个数(之前错误写100却运行没有输入100个数)
输出斐波那契数列
//输出斐波那契数列 #includeint main (void) { int i; int fib [10] = {1,1}; for (i=2;i<10;i++) fib [i] =fib [i-1] +fib [i-2]; for (i=0;i<10;i++){ printf ("%6d",fib [i]); if ((i+1)%5==0) printf ("/n"); } return 0; }
输出所有大于平均值的数
#includeint main (void) { int i; double average,sum; int a [10]; printf ("Enter 10 integers:"); sum=0; for (i=0;i<10;i++){ scanf("%d", &a[i]); sum=sum+a[i]; } average=sum/10; printf("averge=% .2fn", average); printf(">average:"); for (i=0;i<10;i++){ if(a[i]>average) printf("%d",a[i]); } printf ("n"); return 0; }
输入一个以回车符为结束标志字符串
#includeint main (void) { int i,number; char str [10]; //输入字符串 printf ("Enter a string:"); i=0; while ((str [i] =getchar ())!='n') i++; str [i] =' '; //判断是否为数字字符并进行转换 number=0; for (i=0;str [i]!=' ';i++) if (str [i]>='0'&&str [i]<='9') number=number*10+str [i]-'0'; printf ("digit=%dn",number); return 0; }
统计字符串中数学字符的个数
//统计字符串中数学字符的个数 #includeint main (void) { int count,i; char str [80]="apple12345"; //输入字符串 printf ("Enter a string:"); i=0; while ((str [i] =getchar())!= 'n') i++; str [i]=' ';//将' '存入数组 //统计字符串中数字字符个数 count =0; for (i=0;str [i]!=' ';i++) //循环条件:str [i]不等于' ' if (str [i] <='9'&&str [i] >='0') count++; printf ("count=%dn", count); return 0; }
选择法排序
//选择法排序 #includeint main(void) { int i,index,k,n,temp; int a [10]; printf("Enter n:"); scanf("%d", &n); printf("Enter %d integers:",n); for(i=0;i
在数组中查找一个给定的数
//在数组中查找一个给定的数 #includeint main (void) { int i,flag,x; int a[5]; printf("Enter 5 integers:"); for(i=0;i<5;i++) scanf("%d", &a[i]); printf("Enter x:"); scanf ("%d", &x); flag=0; for(i=0;i<5;i++) if (a[i] ==x){ printf ("Index is %dn", i); flag=1; break; } if(flag==0) printf ("Not Foundn"); return 0; }
找出数组的最小值和它所对应的下标
//找出数组的最小值和它所对应的下标 #includeint main(void) { int i,index,n; int a [10]; printf ("Enter n:"); scanf ("%d", &n); printf ("Enter %d integers:",n); for (i=0;i 二维数组 方阵转置
//方阵转置 #includeint main(void) { int i,j,n,temp; int a[6][6]; //给二维数组赋值 printf ("Enter n:"); scanf ("%d", &n); for (i=0;i
计算某个日期对应该年的第几天// 计算某个日期对应该年的第几天 #include#include int day_of_year (int year,int month,int day) //主函数调用day_of_year()函数 { int k,leap; int tab[2][13] = { //初始化,天数赋值给数组 {0,31,28,31,30,31,30,31,31,30,31,30,31 }, {0,31,29,31,30,31,30,31,31,30,31,30,31 } }; //判断闰年,为闰年leap=1;非则leap=0 //闰年:能被4整除不能被100整除或能被400整除 leap=(year %4==0 &&year%100!=0 ||year%400==0); //计算 for (k=1;k
找出矩阵中的最大值及其行下标和列下标//找出矩阵中的最大值及其行下标和列下标 #includeint main(void) { int col,i,j,row;//row column分别代表这个元素的行和列 max 代表这个元素的值 int a[3][2];//[3]行 [2]列 //将输入的数存入二维数组 printf ("Enter 6 integers:n"); for (i=0;i<3;i++) for (j=0;j<2;j++) scanf ("%d", &a[i][j]); //按矩阵的形式输出二维数组a for(i=0;i<3;i++){ for (j=0;j<2;j++) printf ("%d", a[i][j]); printf ("n"); } //找出最大值a[col][row] row=col=0; for(i=0;i<3;i++) for(j=0;j<2;j++) if(a[i][j]>a[row][col]){ row=i; col=j; } printf("max=a[%d][%d]=%dn",row,col,a[row][col]); return 0; } 自我总结
时间不够了,还得继续加油,欠下了好多知识,现在不学习等着什么时候后悔!!!再难也得坚持再不会也得学完再慢也得学懂。
小总结:
1.数组名是一种地址常量,存放数组内存空间的首地址
2.数组元素的引用要指定下标
数组名 【下标】
3.一维数组初始化
类型名 数组名 【数组长度】= {出值表}
eg.int a [3] = {1,2,3};
规定:c语言只有静态存储数组才能初始化,但c编译系统都被允许赋初值
,静态储存的数组没有初始化直接赋值零
如果只对部分元素初始化,数组长度是不能省略的
4.斐波那数列
f [0] = f [1] =1
f [n] =f [n-1] =f [n-2]
5.注意:
<1>for () 后面没有;
<2> define SIZE 5 -----5指输入个数
6. 投票情况统计重点:count [response] ++;
7. 二维数组找出最大小值及行列下标:
先输入数:
printf ("");
for()
for()
scanf ("%d", &a[][])
按矩阵形式输出:
for () {
for ()
printf ("%4d", a[i][j]);
printf ("n");
}
找最值以最大值为例:
先假设a[0][0]最大
如果a[i][j]比假设值大
再假设a [i][j]是新的最大值row=i;col=j;
8.转置行列互换
temp=a[i][j];
a [i][j] =a [j][i];
a[i][j] =temp;
9.闰年:能被4整除但不能被100整除或者能被400整除
闰年二月29天平年二月28天
10.回文就是字符串中心对称
eg:abcba abccba
11.结束符’n’
12.
printf("%pn", &a[0]);
printf("%pn", &a[1]) ;这两行代码:能实现储存方式



