• 第十次实验


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

    #include <stdio.h>
    int main()
    {
        int sum,grade[3][5]={78,89,45,65,68,69,67,71,73,75,78,65,82,85,86},i,j,sum1=0;
        double average,ave;
        printf("	语文	数学	英语
    ");    
                for(j=0;j<5;j++)
                {
                    printf("学生%d	",j+1);
                        for(i=0;i<3;i++)
                    {
                        printf("%d	",grade[i][j]);
                    }
                    printf("	
    ");
                }
                
                for(i=0;i<5;i++)
                {
                    sum=0;
                    for(j=0;j<3;j++)
                    {
                        sum=sum+grade[j][i];
                    }
                    printf("总分%d
    ",sum);
                    average=(double)sum/3;
                    printf("平均%.3f
    ",average);
                }                            
                    //各科平均分
                printf("平均分");
            for(i=0;i<3;i++)
            {
                sum1=0;
                for(j=0;j<5;j++)
                {
                    sum1=sum1+grade[i][j];
                }
                ave=(double)sum1/5;
                printf("%.2f	",ave);
            }
    
        return 0;
    }

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

                            

    #include <stdio.h>
    #define N 100
    int main()
    {
        int i,j,sum,a,b=0,d;          //i代表行,j代表列 
        int group[N][N];
        printf("请输入行数");
        scanf("%d",&a);
        for(i=0;i<a;i++)
        {
            for(j=0;j<a;j++)
            {
               b++;
               group[i][j]=b;
               printf("%3d",b);
            }
            printf("
    ");
        }
       //各行之和
         for(i=0;i<a;i++)
        {
             sum=0;
             for(j=0;j<a;j++)
             {
                 sum=sum+group[i][j];
            }
            printf("第%d行的和为%d
    ",i+1,sum);
        }
        //各列之和    
        for(j=0;j<a;j++)
        {
            sum=0;
            for(i=0;i<a;i++)
            {
                sum=sum+group[i][j];
            }
            printf("第%d列的和是%d
    ",j+1,sum);
        }
        //对角线之和 
        sum=0;
        for(i=0;i<a;i++)
        {
            for(j=0;j<a;j++)
            {      
                if(i==j)
                 {
                     sum=sum+group[i][j];
                 }
               }
       }
            printf("对角线之和为%d
    ",sum);
           sum=0;
           for(i=0;i<a;i++)
           {
               for(j=4;j>=0;j--)
               {
                   if(i+j==4)
                   {
                       sum=sum+group[i][j];
                   }
            }
        }
           printf("对角线2之和为%d",sum);
            return 0;
    }

    知识点

    1、group[a][b]代表坐标(a,b)点处的值

    2、注意输出语句和赋值语句摆放位置,错误可能会影响程序数值错误

    3、适当使用if语句可以减少for循环量

  • 相关阅读:
    10. Regular Expression Matching
    9. Palindrome Number
    6. ZigZag Conversion
    5. Longest Palindromic Substring
    4. Median of Two Sorted Arrays
    3. Longest Substring Without Repeating Characters
    2. Add Two Numbers
    链式表的按序号查找
    可持久化线段树——区间更新hdu4348
    主席树——树链上第k大spoj COT
  • 原文地址:https://www.cnblogs.com/456abc/p/6159278.html
Copyright © 2020-2023  润新知