第十次作业

 1.有5名学生,每名学生有语文、数学和外语3门课的考试成绩。编程统计各学生的总分和平均分以及所有学生各科的平均分。要求成绩在程序中初始化,结果以表格的形式输出。            

 1 #include<stdio.h>
 2 #define M 5
 3 #define N 5
 4 void aveforcourse1(int score[5][5] ,double average1[]);
 5 void aveforcourse2(int score[5][5] ,double average2[]);
 6 void readscore(int score[M][N]);
 7 int main()
 8 {
 9     int i,j,sum=0,score[5][5];
10     double average1[5],average2[5];
11     readscore(score);
12     aveforcourse1(score,average1); 
13     aveforcourse2(score,average2); 
14     printf("	语文	数学	英语	总分	平均值
");
15     for(i=0;i<M;i++)
16     {
17      
18         printf("
");
19         for(j=0;j<4;j++)
20         {
21             printf("	%d",score[i][j]);
22         }
23         printf("%12.2f",average1[i]);
24     }
25     printf("
平均值
");
26     for(i=0;i<3;i++)
27     {
28         printf("	%.2f",average2[i]);
29     } 
30     return 0;
31 }
32 void aveforcourse1(int score[5][5],double average1[])
33 {
34     int i,j,sum;
35     for(i=0;i<M;i++)
36     {
37         sum=0;
38         for(j=0;j<3;j++)
39         {
40             sum+=score[i][j];
41         }
42        average1[i]=(double)sum/3;
43  
44     }
45 }
46 void aveforcourse2(int score[5][5],double average2[])
47 {
48     int i,j,sum;
49     for(i=0;i<3;i++)
50     {
51         sum=0;
52         for(j=0;j<5;j++)
53         {
54             sum+=score[j][i];
55         }
56        average2[i]=(double)sum/5;
57  
58     }
59 }
60 void readscore(int score[M][M])
61 {
62     int i,j,sum;
63     printf("输入
");
64     for(i=0;i<M;i++)
65     {
66         sum=0;
67         printf("第%d个人:
",i+1);
68         for(j=0;j<3;j++)
69         {
70             scanf("%d",&score[i][j]);
71             sum+=score[i][j];
72         }
73             score[i][3]=sum;
74     }
75      
76 }

2.求任意方阵每行、每列、两对角线上元素之和。

 1 #include<stdio.h>
 2 #define N 99
 3 int main()
 4 {
 5     int x,sum,shu[N][N],i,j,y;
 6     printf("输入方阵的长:");
 7     scanf("%d",&x);
 8     for(i=0;i<x;i++)
 9     {
10         for(j=0;j<x;j++)
11         {
12          y++;
13          shu[i][j]=y;
14          printf("%4d",y);
15         }
16         printf("
");
17     }
18     printf("
");
19     for(i=0;i<x;i++)
20     {
21         sum=0;
22         for(j=0;j<x;j++)
23         {
24             sum=sum+shu[i][j];
25              
26         }
27         printf("第%d行的和为%d
",i+1,sum);
28     }
29     for(j=0;j<x;j++)
30     {
31         sum=0;
32         for(i=0;i<x;i++)
33         {
34             sum=sum+shu[i][j];
35              
36         }
37         printf("第%d列的和为%d
",j+1,sum);
38     }
39     sum=0;
40     for(i=0;i<x;i++)
41     {
42         for(j=0;j<x;j++)
43         {
44             if(i==j)
45             {
46               sum=sum+shu[i][j];
47             }  
48         }
49     }
50     printf("左上-右下的数的和为%d
",sum);
51     sum=0;
52     for(i=0;i<x;i++)
53     {
54         for(j=x;j>=0;j--)
55         {
56             if(i==j)
57             {
58               sum=sum+shu[i][j];
59             }  
60         }
61     }
62     printf("右上-左下的数的和为%d
",sum);
63     return 0;
64 }

  二、实验总结(实验中遇到的问题及解决方法) 

1主要是思路上的问题,如果有大局观就没有问题,但是连四路都没有。

2条理要清晰,以便改正是方便下手。

3运用for循环时不一定从小到大,思维要灵活。

原文地址:https://www.cnblogs.com/yeqingsong/p/6146388.html