1 回答 这个分数统计的怎么用c语言编写啊

20个同学成绩到数组中,统计最高分和最低分,和20名同学的总分

可以查看一下这篇文章:https://blog.csdn.net/wang787075/article/details/112195651

#include<stdio.h> 
int main()
{
    int i;  
    float a[20];   
    printf("请输入20名学生的成绩:\n"); 
    for(i=0;i<20;i++){
    printf("请输入第%d名学生的成绩:",i+1);    
    scanf("%f",&a[i]);        
    }
    float sum=0,max=a[0],min=a[0]; //定义sum存放20名学生成绩的和
    for(i=0;i<20;i++){             //定义max与min的数组为0
                                  //假设最大与最小值为数组的第一位
    sum+=a[i];      //求和
    if(a[i]>max){   //判断上面定义的max数组第二位是否大于第一位
    max=a[i];        //如果大于max,max变为数组的第二位,依次判断,求出最大值
    }
    if(a[i]<min){   //最小数同理↑↑
    min=a[i];    
    }    
    }
    printf("20名学生中最高分为:%.2f最低分为:%.2f平均分为:%.2f",max,min,sum/20); 
    return 0;  //因为输出的数保留两位小数,所以%.2f
}

该回答引用chatgpt:

#include <stdio.h>

int main() {
    int scores[20];
    int i, sum = 0;
    int max_score = -1, min_score = 101;

    // 读入成绩
    for (i = 0; i < 20; i++) {
        printf("请输入第%d个同学的成绩:", i+1);
        scanf("%d", &scores[i]);

        // 统计总分
        sum += scores[i];

        // 更新最高分和最低分
        if (scores[i] > max_score) {
            max_score = scores[i];
        }
        if (scores[i] < min_score) {
            min_score = scores[i];
        }
    }

    // 输出结果
    printf("最高分:%d\n", max_score);
    printf("最低分:%d\n", min_score);
    printf("总分:%d\n", sum);

    return 0;
}


  • 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: https://ask.csdn.net/questions/7751365
  • 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:c语言:输入四科成绩求总分平均分最高分和最低分
  • 同时,你还可以查看手册:c语言-可分析性 中的内容
  • 除此之外, 这篇博客: C语言实现的一个小学生算数自测系统源码分享中的 C语言实现的一个小学生算数自测系统源码分享 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:

  • #include
    <stdio.h>
    //标准输入输出

    #include
    <stdlib.h>
    //用于对程序进行退出操作

    #include
    <time.h>
    //用于计时和随机数的产生

    char YN;

    enum{N,Y}; //录入用户选择

    int x;

    int
    toSystem(int []); //函数声明

    int
    foreWord(int []); //函数声明

    int
    menu();

    int
    main()

    {

    int name[20];                                     //存储小学生姓名
    
    toSystem(name);                                  //起始界面
    
    foreWord(name);                                  //前言界面
    
    menu(name);                                     //主菜单
    

    }

    int
    toSystem(int vals[])

    {

    printf("\t\t\t\tC语言程序设计案例\n");
    

    printf("\t\t\t-----------------------------------------\n");

    printf("\t\t\t\t名称:小学生算数自测系统\n");
    
    printf("\t\t\t\t工具:Code::Blocks\n");
    
    printf("\t\t\t\t作者:李安瑞\n");
    

    printf("\t\t\t-----------------------------------------\n");

    printf("\t\t\t\t请输入你的名字:");
    
    scanf("%s",vals);
    
    printf("\t\t\t\tYour name is %s,do you
    

    want to the next?\n");

    printf("\t\t\t\t如果你想继续,输入Y,想退出就输入N\t");
    
    scanf("%c %c",&x,&YN);
    
    if(YN)
    
    {
    
       system("cls");                                    //清屏
    
    }else{exit(1);};                                       //退出
    

    }

    int
    foreWord(int vals[])

    {

    printf("\t\t\t\t前言\n");
    
    printf("    %s同学,你好,欢迎使用【小学生算数自测系统】,本程序以全菜单形式实现了以下功能;\n",vals);
    
    printf("小学生的加法,减法,乘法和除法。\n");
    
    printf("    出于方便考虑,我们为您添加了退出选项\n");
    
    printf("    本程序若在执行中有问题,欢迎您批评指正!");
    
    printf("\n    您的宝贵意见是我们的不竭动力!");
    
    printf("\n温馨提示:小朋友在做题之前可以选择菜单5,了解一下测试规则。");
    
    printf("\n    测试结束后可以选择菜单6对本次测试进行打分");
    
    printf("\n\t\t\t\t如果你想继续,输入Y,想退出就输入N\t");
    
    scanf("%c %c",&x,&YN);
    
    if(YN)
    
    {
    
       system("cls");
    
    }else{exit(1);};
    

    }

    int
    menu()

    {

    int add();
    
    int sub();
    
    int dive();
    
    int mul();
    
    int exc();
    
    int inform();
    
    int choose;
    
    printf("小朋友,欢迎你来到小学算数\n");                             //用户选择
    
    printf("\t\t\t\t1.加法\n");
    
    printf("\t\t\t\t2.减法\n");
    
    printf("\t\t\t\t3.乘法\n");
    
    printf("\t\t\t\t4.除法\n");
    
    printf("\t\t\t\t5.说明\n");
    
    printf("\t\t\t\t6.评价\n");
    
    printf("\t\t\t\t0.退出\n");
    
    printf("请选择:");
    
    scanf("%d",&choose);
    
    system("cls");
    
    switch(choose)
    
    {
    
        case 0:exit (1) ;
    
        case 1:add();
    
        case 2:sub();
    
        case 3:mul();
    
        case 4:dive();
    
        case 5:inform();
    
        case 6:exc();
    
    }
    

    }

    int add()

    {

    int start,end;
    
    start=time(NULL);                                              
    

    //起始时间

    void rank(int,float);
    
    int i,tnum,rand1,rand2,yours;
    
    float ranks=0.0;
    
    printf("请选择题目数量<建议在20题左右>:");
    
    scanf("%d",&tnum);
    
    for(i=0;i<tnum;i++)
    
    {
    
        srand(time(NULL));
    
        rand1=1+(int)rand()%100;
    
        rand2=1+(int)rand()%100;
    
        printf("%d+%d=",rand1,rand2);
    
        scanf("%d",&yours);
    
        if (yours==rand1+rand2)
    
        ranks++;
    
    }
    
    end=time(NULL);                                            //结束时间
    
    printf("\t时间是%ds\n",end-start);                              //时间计数
    
    rank(tnum,ranks);
    

    go();
    //是否进入菜单栏

    }

    int sub()

    {

    int start,end;
    
    start=time(NULL);
    
    void rank(int,float);
    
    int i,tnum,rand1,rand2,yours;
    
    float ranks=0.0;
    
    printf("请选择题目数量<建议在20题左右>:");                    
    

    //数组实现

    scanf("%d",&tnum);
    
    for(i=0;i<tnum;i++)
    
    {
    
        srand(time(NULL));
    
        rand1=1+(int)rand()%100;
    
        rand2=1+(int)rand()%100;
    
        if(rand1>rand2)
    
            {
    

    printf("%d-%d=",rand1,rand2);

            scanf("%d",&yours);
    
            if (yours==rand1-rand2)
    
            ranks++;                                        //计入答对题的个数
    
        }
    
        else
    
            {
    
            printf("%d-%d=",rand2,rand1);
    
            scanf("%d",&yours);
    
            if (yours==rand2-rand1)
    
            ranks++;
    
        };
    
    
    
    }
    
    end=time(NULL);
    
    printf("\t时间是%d\n",end-start);
    
    rank(tnum,ranks);
    
    go();
    

    }

    int mul()

    {

    void rank(int,float);
    
    int i,j,tnum,rand1,rand2,yours;
    
    float ranks=0.0;
    
    for(j=0;j<3;j++)
    
    {
    
        if(j==0)
    
            printf("第一关");
    
        if(j==1)
    
            printf("第二关");
    
        if(j==2)
    
            printf("第三关");
    
        printf("\n请选择题目数量<建议在20题左右>:");
    
    scanf("%d",&tnum);
    
    for(i=0;i<tnum;i++)
    
    {
    
        srand(time(NULL));
    
        rand1=1+(int)rand()%10;
    
        rand2=1+(int)rand()%10;
    
        printf("%d*%d=",rand1,rand2);
    
        scanf("%d",&yours);
    
        if (yours==rand1*rand2)
    
        {
    
        if(i==0)
    
            printf("\n恭喜答对,继续加油!\n");
    
        if(i==1)
    
            printf("\n恭喜答对,继续加油!\n");
    
        }else 
    

    {printf(“闯关失败!\n”);go();}
    //有一题错误即失败

    }
    
     if(j==0)
    
            printf("恭喜通过第一关!\n");
    
        if(j==1)
    
            printf("恭喜通过第二关!!\n");
    
        if(j==2)
    
            printf("恭喜通全关!!!\n");
    
    }
    
    go();
    

    }

    int
    dive()

    {

    void rank(int,float);
    
    int i,j,tnum,rand1,rand2,yours;
    
    float ranks=0.0;
    
    for(j=0;j<3;j++)
    
    {
    
        if(j==0)
    
            printf("第一关");
    
        if(j==1)
    
            printf("第二关");
    
        if(j==2)
    
            printf("第三关");
    
        printf("\n请选择题目数量<建议在20题左右>:");
    
    scanf("%d",&tnum);
    
    for(i=0;i<tnum;i++)
    
    {
    
        srand(time(NULL));
    
        rand1=1+(int)rand()%10;
    
        rand2=rand1*(1+(int)rand()%10);                         //随机数产生数字
    
        printf("%d/%d=",rand2,rand1);                            //相乘结果即被除数
    
        scanf("%d",&yours);
    
        if (yours==rand2/rand1)
    
        {
    
        if(i==0)
    
            printf("\n恭喜答对,继续加油!\n");
    
         if(i==1)
    
            printf("\n恭喜答对,继续加油!\n");
    
        }
    
        else 
    

    {printf(“闯关失败!\n”);go();}

    }
    
     if(j==0)
    
            printf("恭喜通过第一关!\n");
    
        if(j==1)
    
            printf("恭喜通过第二关!!\n");
    
        if(j==2)
    
            printf("恭喜通全关!!!\n");
    
    }
    
    go();
    

    }

    void
    rank(int tnum,float ranks)

    {

    printf("\n你答对了%5.0f题\n",ranks);
    
    float average;
    
    average = 100.0/tnum;
    
    ranks*=average;
    
    int integer;
    
    integer=ranks;
    
    if(integer==ranks)
    
        printf("你的成绩是%d\n你的等级是",integer);
    
    else
    
        printf("你的成绩是%d\n你的等级是",integer+1);
    
    if(integer<60)
    
    {printf("D");}
    
    else if(integer<75)
    
        {printf("C");}
    
    else if(integer<90)
    
        {printf("B");}
    
    else
    
        {printf("A");};
    

    }

    void go()
    //清屏选项

    {

    printf("\n\t\t\t\t如果你想继续,输入Y,想退出就输入N\t");
    
    scanf("%c %c",&x,&YN);
    
    if(YN)
    
    {
    
       system("cls");
    
       menu();
    
    }else{exit(1);};
    

    }

    int
    inform()

    {

    printf("这个系统共有四个功能,分别为简单的加减乘除\n");
    
    printf("其中加减法我们采取打分和评等级制\n");
    
    printf("乘除法我们采取过关的方式\n");
    
    printf("注:总分100,每小题的分数为总分除以题量,等级为A,B,C,D\n");
    
    printf("关卡难度由随机数产生\n");
    
    printf("制作者:李安瑞  日期:2018/12/16\n");
    
    go();
    

    }

    int exc()

    {

    int ccc;
    
    printf("请对系统进行评价哦,嘤嘤嘤~~~\n");
    
    printf("请对系统打分(0--10):");
    
    scanf("%d",&ccc);
    
    printf("\n谢谢您的参与");
    

    }

  • 您还可以看一下 张明阳老师的深入理解C语言指针和结构体课程中的 从底层深入理解指针和指针变量的概念(3)小节, 巩固相关知识点