先甩两个源代码:
/*===============================================
* 文件名称:five.c
* 创 建 者:
* 创建日期:2022年03月27日
* 描 述:
================================================*/
#include <stdio.h>
int main(int argc, char *argv[])
{
int a[2][3]={0};
printf("please input six number:\n");
for(int i=0;i<2;i++)
for(int j=0;j<3;j++)
scanf("%d ",&a[i][j]);
printf("the six number is:\n");
for(int j=0;j<3;j++)
for(int i=0;i<2;i++){
printf("%d ",a[i][j]);
if(i==1)
printf("\n");
}
}
root@ubuntu:/C# ./a.out
please input six number:
1 2 3
4 5 6
1
//多出来的 1 是因为scanf("%d ");即 %d 后面有个空格,当然,这里也可以写出%nd,不打空格
the six number is:
1 4
2 5
3 6
①理解局部变量,全局变量
for循环里的 'i' 是局部变量,循环结束便销毁。
②理解二维数组行列互换与 'i' 和 'j' 无关,'i','j'只是控制数组内部元素进行行列的输出
③二维数组本质上还是一个含有两个一维数组的一维数组,想象成围棋盘,其数组元素还是依次存放的,因此无论两个for括号内的条件怎么办,printf()还是打印a[i][j].
反例:
root@ubuntu:/C# cat five.c
/*===============================================
* 文件名称:five.c
* 创 建 者:
* 创建日期:2022年03月27日
* 描 述:
================================================*/
#include <stdio.h>
int main(int argc, char *argv[])
{
int a[2][3]={0};
printf("please input six number:\n");
for(int i=0;i<2;i++)
for(int j=0;j<3;j++)
scanf("%d ",&a[i][j]);
printf("the six number is:\n");
for(int j=0;j<3;j++)
for(int i=0;i<2;i++){
printf("%d ",a[j][i]);
if(i==1)
printf("\n");
}
}
please input six number:
1 2 3
4 5 6
1
the six number is:
1 2
4 5
700364032 775990375
不知道你们理解了没,再甩一个代码
1 /*===============================================
2 * 文件名称:l32.c
3 * 创 建 者:
4 * 创建日期:2022年04月13日
5 * 描 述:
6 求4名同学的3门学科,单科成绩的平均分,所有科目的平均分
7 ================================================*/
8 #include <stdio.h>
9
10 int main(int argc, char *argv[])
11 {
12 int i,j,k=0;
13 float sum=0;
14 float avg_score[3]={0}; //存单科成绩的平均分
15 float avg[4]={0}; //存考生所得成绩的平均分
16 float score[4][3]={0}; //存全部成绩
17 printf("请依次输入四名同学的语文、数学、英语成绩:\n");
18 for(i=0;i<4;i++)
19 {
20 for(j=0;j<3;j++)
21 {
22 scanf("%f",&score[i][j]);
23 }
24 printf("==============\n");
25 }
26 for(i=0;i<4;i++)
27 {
28 for(;k<4;)
29 {
30 for(j=0;j<3;j++)
31 {
32 sum += score[i][j];
33 }
34 avg[k] = sum/3;
35 sum = 0;
36 printf("第%d位同学所得成绩的平均分为:%f\n",k+1,avg[k]);
37 k++;
38 break; //跳出内层循环
39 }
40 }
41 k=0;
42 sum=0;
43 printf("=====行列互换=====\n");
44 for(j=0;j<3;j++)
45 for(i=0;i<4;i++)
46 {
47 printf("%f ",score[i][j]);
48 if(i==3)
49 printf("\n");
50 }
51 printf("学科依次是语文,数学,英语\n");
52 for(j=0;j<3;j++)
53 {
54 for(;k<3;)
55 {
56 for(i=0;i<4;i++)
57 {
58 sum += score[i][j];//四人同科
59 }
60 avg_score[k] = sum/4;
61 printf("第%d学科成绩的平均分为:%f\n",k+1,avg_score[k]);
62 sum=0;
63 k++;
64 break;
65 }
66 }
67 return 0;
68 }
最后,一起加油!