39. 通过实现两道题,体验访问数组行列元素的灵活性,掌握在一个嵌套循环内遍历数组时存在列与行相关的“”同时计算“”的问题的实现





1
#include <stdio.h> 2 3 int main(void) 4 { 5 int arr[6][5]; 6 int i,j; 7 for(i = 0;i<6;i++) 8 { 9 printf("Enter row %d:",i+1); 10 for(j = 0;j<5;j++) 11 { 12 scanf("%d",&arr[i][j]); 13 } 14 } 15 16 17 18 int rowsum[6]={0}; 19 int colsum[5]={0}; 20 21 #if 0 //基本方法 22 for(i = 0;i<6;i++)//累加每行 23 { 24 for(j = 0;j<5;j++) 25 { 26 rowsum[i] += arr[i][j]; 27 } 28 } 29 30 for(j = 0;j<5;j++)//累加每列 31 { 32 for(i = 0;i<6;i++) 33 { 34 colsum[j] += arr[i][j]; 35 } 36 } 37 #endif 38 39 #if 0 //优化方法 40 for(i = 0;i<6;i++)//同时累加每行每列 41 { 42 for(j = 0;j<5;j++) 43 { 44 rowsum[i] += arr[i][j]; 45 colsum[j] += arr[i][j]; 46 } 47 } 48 #endif 49 50 51 //打印 52 printf("Row totals:"); 53 for(i = 0;i<6;i++) 54 { 55 printf("%3d",rowsum[i]); 56 } 57 putchar(10); 58 printf("Column totals:"); 59 for(j = 0;j<5;j++) 60 { 61 printf("%3d",colsum[j]); 62 } 63 putchar(10); 64 65 return 0; 66 }

//打印懒得写了。

 1 #include <stdio.h>
 2 
 3 int main(void)
 4 {
 5 
 6     int i,j;
 7     int arr[5][5] = {{1,2,3,4,5},
 8                     {6,7,8,9,10},
 9                     {11,12,13,0,15},
10                     {16,0,18,19,20},
11                     {0,22,23,24,25}};
12  /*
13     for(i = 0;i<5;i++)
14     {
15         printf("Enter %d student's score:",i+1);
16         for(j = 0;j<5;j++)
17         {
18             scanf("%d",&arr[i][j]);
19         }
20     }
21    */
22     int rowsum[5] = {0};//存储每个学生的总分
23     int colsum[5] = {0};//存储每门测验的(所有学生加起来的)总分
24     int min[5] = {101,101,101,101,101};//存储每门测验的最低分
25     int max[5] = {-1,-1,-1,-1,-1};//存储每门测验的最高分
26 
27 #if 0//基本方法
28     for(i = 0;i<5;i++)
29     {
30         for(j=0;j<5;j++)
31         {
32             rowsum[i] += arr[i][j];
33         }
34     }
35     for(j = 0;j<5;j++)
36     {
37         for(i=0;i<5;i++)
38         {
39             colsum[j] += arr[i][j];
40             if(min[j] > arr[i][j])
41                 min[j] = arr[i][j];
42             if(max[j] < arr[i][j])
43                 max[j] = arr[i][j];
44         }
45     }
46 
47 #endif
48 
49 
50 #if 0   //最优方法
51 
52     for(i = 0;i<5;i++)//
53     {
54         for(j = 0;j<5;j++)
55         {
56             rowsum[i] += arr[i][j];
57             colsum[j] += arr[i][j];
58             if(min[j] > arr[i][j])//持续性慢比
59                 min[j] = arr[i][j];
60             if(max[j] < arr[i][j])//持续性慢比
61                 max[j] = arr[i][j];
62         }
63     }
64 
65 #endif
66 
   67 68 return 0; 69 }




原文地址:https://www.cnblogs.com/ZhuLuoJiGongYuan/p/9501983.html