十月二十三号记录。
题外话:比较三个数大小并输出。
//输入三个不同的整数,比较大小后从大到小输出 #includeint main() { int a,b,c; printf("输入三个不同的整数:n"); scanf("%d %d %d",&a,&b,&c); //三个整数 int t; if(b>a) //比较大小过程 { t = a; a = b; b = a; } if(a b) { t = b; b = c; c = t; } //比较结束 printf("%d > %d > %dn",a,b,c); return 0; }
数组
一维数组
定义
类型说明符 数组标识符[常量表达式];
int i[5];
注意例如in i[5]中赋值后包含五个元素,分别为i[0]、i[1]、i[2]、i[3]、i[4],并没有i[5],若有则下标越界报错。
引用
数组标识符[下标];
i[3];
char c[5];
注意下标可以是整型数据也可以是整型表达式,若结果为小数则自动取整。
初始化
可以直接赋值
int i[5] = {1,2,3,4,5};
或
int i[6] = {1,2,3};
或
char c[3] = {'a','b','d'};
这样后续会有五个变量可供使用。 未写全的只赋值前面部分,后续部分元素默认为0。
//简单定义一维数组并赋值,然后倒序输出数据 #includeint main() { int Mem[5],i = 1; printf("请输入五个数据:"); for(i = 0;i <= 4;i ++) //输入数据 { scanf("%d",&Mem[i]); } for(i = 0;i <= 4;i ++) //显示数组元素 { printf("%d",Mem[i]); } printf("n"); //换行 int j; for(i = 0;i <= 2;i ++) //倒序,利用第三个变量达成数据交换目的。 { j = Mem[i]; Mem[i] = Mem[4-i]; Mem[4-i] = j; } for(i = 0;i <= 4;i ++) //输出倒序结果 { printf("%d",Mem[i]); } return 0; }
上述代码在进行倒序操作时借助了中间变量 j 进行数据交换,这个思想与“比较三个数大小并输出”题目的思想类似。
在快捷一次性输出数组所有元素时,目前必须借助for循环实现。
二维数组
二维数组定义的声明与一维数组相同:
数据类型 数组名[常量表达式1][常量表达式2];
int i[5][6];
其中表达式1为“行下标”,表达式2为“列下标”。
其余大致与一维数组类似。
如上所示,我们可以知道该数组的下标变量共有5*6个,分别为i[0][0]、i[0][1]、i[0][2]、i[0][3]、i[0][4]、i[0][5]、i[1][0]、i[1][1]、i[1][2]、i[1][3]、i[1][4]、i[1][5]、i[2][0]、i[2][1]、i[2][2]、i[2][3]、i[2][4]等等。
在二维数组中,数据按行排列,每一行依次存放,一行结束进行下一行。
初始化
有四种情况
一、
int i[2][2] = {1,2,3,4}; //按顺序一行一行+ 赋值
二、
int j[][2] = {1,2,3,4,5,6}; //省略行下标
三、
int k[3][3] = {{1,3,5},{2,4,6}}; //分行赋值
int l[2][3] = {{1,3},{4,5}}; //这里只赋了部分值,为赋值部分默认为0
五、
int i[2][3];
i[0][1] = 7; //可以用for循环进行赋值操作
尝试使用二维数组存储数据
#includeint main() { int a[2][2],b[2][2]; //定义数组 for(int i = 0;i < 2;i ++) //for循环嵌套用以通过键盘给数组赋值 { for(int j = 0;j < 2;j ++) { printf("a[%d][%d]=",i,j); scanf("%d",&a[i][j]); } } printf("输出二维数组:n"); //输出提示 for(int i = 0;i < 2;i ++) //for循环嵌套用以输出数组 { for(int j = 0;j < 2;j ++) { printf("%dt",a[i][j]); } printf("n"); //下一行数组换行 } return 0; }



