首页 理论教育 实例:C语言二维数组程序

实例:C语言二维数组程序

时间:2023-10-29 理论教育 版权反馈
【摘要】:程序内容如下:1#include<stdio.h>2int main()3{4int a[3][3];5int i,sum=0;6printf;7for8scanf;9for10printf;11for12sum=sum+a[i][i];13printf;14return 0;15}程序结果如图5.8所示:图5.8例5.7程序结果图用二维数组a[3][3]表示方阵,则s=a[0][0]+a[1][1]+a[2][2],即sum=sum+a[i][i]。

实例:C语言二维数组程序

【例5.7】求一个3×3方阵主对角线元素之和。

程序内容如下:

1 #include<stdio.h>

2 int main()

3 {

4  int a[3][3];

5  int i,sum=0;

6  printf("Please input data:\n");

7  for(i=0;i<3;i++)

8   scanf("%d%d%d",&a[i][0],&a[i][1],&a[i][2]);

9  for(i=0;i<3;i++)

10   printf("%d%d%d\n",a[i][0],a[i][1],a[i][2]);

11  for(i=0;i<3;i++)

12   sum=sum+a[i][i];

13  printf("sum=%d\n",sum);

14  return 0;

15 }

程序结果如图5.8所示:

图5.8 例5.7程序结果图

【例题中关键问题说明】

二维数组a[3][3]表示方阵,则s=a[0][0]+a[1][1]+a[2][2],即sum=sum+a[i][i](i=0,1,2)。

程序内容如下:

1 #include<stdio.h>

2 int main()

3 {

4  int i,j,a[2][3],b[3][2];

5  for(i=0;i<=1;i++)

6   for(j=0;j<=2;j++)

7   {

8    printf("a(%d,%d)=",i+1,j+1);

9    scanf("%d",&a[i][j]);

10    b[j][i]=a[i][j];

11   }

12  for(i=0;i<=2;i++)

13  {

14   for(j=0;j<=1;j++)

15    printf("%d\t",b[i][j]);

16   printf("\n");

17  }

18  return 0;

19 }

程序结果如图5.9所示:

图5.9 例5.8程序结果图

程序中用数组a、b表示了矩阵a及其转置矩阵b,数组元素的下标与用什么变量表示无关,与其值有关。&a[i][j]是取数组元素的地址

【例5.9】学生成绩管理。某班某学期的成绩如表5-1所示,求每门课和每个学生的平均成绩。

表5-1 学生成绩管理表(www.xing528.com)

程序内容如下:

1 #include<stdio.h>

2 int main()

3 {

4  int m,n,i,j;

5  float a[35][10]={0};

6  printf("m,n=");

7  scanf("%d,%d",&m,&n);

8  for(i=1;i<=m;i++)

9   for(j=1;j<=n;j++)

10   {

11    printf("a[%d][%d]=",i,j);

12    scanf("%f",&a[i][j]);

13   }

14   for(i=1;i<=m;i++)

15   {

16    for(j=1;j<=n;j++)

17     a[i][n+1]=a[i][n+1]+a[i][j];

18     a[i][n+1]=a[i][n+1]/n;

19   }

20   for(j=1;j<=n;j++)

21   {

22    for(i=1;i<=m;i++)

23     a[m+1][j]=a[m+1][j]+a[i][j];

24     a[m+1][j]=a[m+1][j]/m;

25   }

26   for(i=1;i<=m+1;i++)

27   {

28    for(j=1;j<=n+1;j++)

29     printf("%10.2f",a[i][j]);

30    printf("\n");

31   }

32  return 0;

33 }

程序结果如图5.10所示:

图5.10 例5.9程序结果图

【例题中关键问题说明】

变量m,n分别表示学生数和课程数,成绩用二维数组a[m+2][n+2]表示,其中a[i][j]表示第i个学生的第j门课程的成绩(i=1,2,…,m;j=1,2,…,n),a[][]表示第个学生的平均成绩,[][]表示第门课程的平均成绩。

请分析,结果中a[m+1][n+1]元素的值是什么意思,哪来的值?

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈