实验十

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

#include<stdio.h>
int main()
{
    int i,j,m,n;
    double sum,ave,a[6][5]={60,99,70,0,0,67,89,90,0,0,78,70,89,0,0,98,74,87,0,0,56,94,46};
    
    for(i=0;i<5;i++)
    {    
        sum=0;
        for(j=0;j<3;j++)
        {
            sum=sum+a[i][j];
     } a[i][
3]=sum; ave=0; ave=(double)sum/3; a[i][4]=ave; } printf(" ÓïÎÄ Êýѧ Ó¢Óï ×Ü·Ö Æ½¾ù·Ö"); printf(" "); for(m=0;m<5;m++) { for(n=0;n<5;n++) { printf(" "); printf("%.2f ",a[m][n]); } if(n==5) { printf(" "); } } for(i=0;i<5;i++) { sum=0; for(j=0;j<5;j++) { sum=sum+a[j][i]; ave=0; ave=(double)sum/5; a[i][6]=ave; } } printf("ƽ¾ù·Ö"); for(i=0;i<5;i++) { printf("%.2f ",a[i][6]); } printf(" "); return 0; }

                         

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

#include<stdio.h>
#define N 5
int main()
{
    int i,j,n=1,sum,a[N][N]={0};
    for(i=0;i<N;i++)
    for(j=0;j<N;j++)
    {
        a[i][j]=n;
        n++;
        printf("%3d",a[i][j]);
     if(n%5==1)
     {
         printf(" ");
     } } printf(
" "); for(j=0;j<N;j++) { sum=0; for(i=0;i<N;i++) { sum=sum+a[j][i]; } printf("µÚ%dÐеĺÍΪ%d ",j+1,sum); } for(i=0;i<N;i++) { sum=0; for(j=0;j<N;j++) { sum=sum+a[j][i]; } printf("µÚ%dÁеĺÍΪ%d ",i+1,sum); } sum=0; for(i=0;i<N;i++) { sum+=a[i][i]; } printf("¶Ô½ÇÏß(×óÉϵ½ÓÒÏÂ)Ö®ºÍΪ%d ",sum); sum=0; for(i=0;i<N;i++) { sum+=a[4-i][i]; } printf("¶Ô½ÇÏߣ¨×óϵ½ÓÒÉÏ£©Ö®ºÍΪ%d ",sum); return 0; }

实验总结:

1、赋初值时注意放在循环里面还是外面

2、不要重复定义变量

3、使用变量要赋初始值

4、数组先排行再排列

原文地址:https://www.cnblogs.com/lr97/p/6139408.html