• 第十次作业


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

    #include <stdio.h>
    int main()
    {
        int grade[5][3]={89,45,65,74,58,69,45,31,54,78,98,96,54,78,45},sum[5],i,j,sum1,h;
        double ave[5],ave1[3];
        for(i=0;i<5;i++)
        {
            sum1=0;
            for(j=0;j<3;j++)
            { 
            sum1+=grade[i][j];
            }
            sum[i]=sum1;
            ave[i]=(double)sum1/3;
        }
        for(i=0;i<3;i++)
        {
            sum1=0;
            for(j=0;j<5;j++)
            { 
            sum1+=grade[i][j];
            }
            ave1[i]=(double)sum1/5;
        }
        printf("      语文    数学    英语     总分     平均分
    ");
        h=0;
        for(i=0;i<5;i++)
        {
            for(j=0;j<3;j++)
            { 
            printf("      %d",grade[i][j]);
            h++;
            }
            printf("       %d",sum[i]);
            h++;
            printf("       %.3f",ave[i]);
            h++;
            if(h%5==0)
            printf("
    ");
        }
        printf("平均分");    
            for(i=0;i<3;i++)
        {
            printf("%.3f  ",ave1[i]);
        }
        return 0;
     } 
     

                        

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

    #include <stdio.h>
    int main()
    {
        int i,j,sum,num[20][20]={0},sumline[20],sumcolumn[20],sumdiagonal[2],b;
        printf("请输入方阵的边长:");             
        scanf("%d",&b);
        for (i=0;i<b;i++)
        {
            for(j=0;j<b;j++)
            {
                printf("请输入第%d行第%d列的数据:",i+1,j+1);
                scanf("%d",&num[i][j]);
            }
         }   
        for (i=0;i<b;i++)
        {
            sum=0;
            for(j=0;j<b;j++)
            {
            sum+=num[i][j];    
            }
            sumline[i]=sum; 
         }
        for (i=0;i<b;i++)
        {
            sum=0;
            for(j=0;j<b;j++)
            sum+=num[j][i];
            sumcolumn[i]=sum; 
         }
        for (i=0;i<b;i++)
        {
            sum=0;
            for(j=0;j<b;j++)
            {
                if(i==j)
                sum+=num[i][j];            
            } 
         }
         sumdiagonal[0]=sum;
         sum=0;
        for (i=0;i<b;i++)
        {
            sum+=num[i][b-i];        
         }
         sumdiagonal[1]=sum;
        for (i=0;i<b;i++)
        {
            printf("第%d行之和为%d
    ",i+1,sumline[i]); 
         }
        for (i=0;i<b;i++)
        {
            printf("每%d列之和为%d
    ",i+1,sumcolumn[i]); 
         }
        for (i=0;i<1;i++)
        {
            printf("对角线之和为%d
    ",sumdiagonal[i]); 
         }
        return 0;
     } 

    实验总结:1有必要的话 记得给函数中的数值初始化

                  2不同的编译环境之间是存在差异的   记得在不同的编译环境测试程序

                  3二维数组也是线性存储的

  • 相关阅读:
    转:Windows 7下安装CentOS双系统
    STL学习总结之<迭代器>
    转:linux静态库与动态库
    指向类成员和成员函数的指针
    STL学习总结之<仿函数>
    转:Linux Crontab 定时任务 命令详解
    转: 解决 Redhat 出现”This system is not registered with RHN”更新
    IOS 判断设备屏幕尺寸、分辨率
    IOS 文件管理共通函数整理
    IOS 编译ffmpeg For SDK6.1,模拟器、armv7、armv7s均可使用
  • 原文地址:https://www.cnblogs.com/UUZsama/p/6139473.html
Copyright © 2020-2023  润新知