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 }