读取一个5*5数组,然后显示每行的和与每列的和
要读取一个5*5的二维数组,首先应该定义一个二维数组并要将之初始化赋值。因为需要读取这一数组,就需要利用一个二重循环。将行号确定,列号改变,在遍历列号时再其后加上换行,之后就可以在终端打印出数组了。
要求显示每行每列的和,就要定义两个整型的变量来存放和的值,就还需要两个二重循环。若是用i表示行,j表示列,那么算每行的和就是在循环中保证i不变时,j变化;而算每列的和是保证j不变,i变化。
源程序如下:
#include <stdio.h> int main() { int a[5][5] = {{1,2,3,4,5},{6,7,8,9,10},{11,12,13,14,15},{16,17,18,19,20},{21,22,23,24,25}}; int i; int j; for (i = 0; i < 5; i++) { for (j = 0; j < 5; j++) { printf ("%3d",a[i][j]); } printf (" "); } printf (" "); for (i = 0; i < 5; i++) { int hangs = 0; for (j = 0; j < 5; j++) { hangs = hangs + a[i][j]; } printf ("第%d行的和为:%d ",i+1,hangs); } printf (" "); for (i = 0; i < 5; i++) { int lies = 0; for (j = 0; j < 5; j++) { lies = lies + a[j][i]; } printf ("第%d列的和为:%d ",i+1,lies); } return 0; }我一开始运行时程序总是无限的运行下去,在重新查看程序后才发现是我误把循环中的i < 5写成了i = 5,运行时就总是显示第6行/列的值。然而明明我心里想的是对的,敲出来就不对了,这就提醒我要高度集中的敲程序,要不然程序很长时更不容易发现!
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。
- 上一篇: 二维数组求平均数(每行/每列)
- 下一篇: 创建一个二维数组,实现该数组的行列转置,输出