m0_71685893 2022-06-04 17:07 采纳率: 100%
浏览 57
已结题

C++程序设计 后面搞不来了

设计一个程序,从键盘输入小于30个学生成绩,当输入为 999 时,输入完毕开始计算。功能有:按“1“计算其平均数,并输出所有小于平均数的数;按“2“从键盘上输入一个成绩,判定该成绩是否在数组中,若在则输出所在序号;按“3“统计并显示优、良、中、及格及不及格人数;按“4“显示本班级的最高分及最低分
#include<stdio.h>
int main()
{printf(" 请根据你需用的功能选择序号\n");
printf("1.计算平均数,并输出所有小于平均数的数\n") ;
printf("2.输入成绩,并判断成绩是否在数组中,若在则输出所在序号\n") ;
printf("3.统计并显示优、良、中、及格、及不及格的人数\n");
printf("4.显示本班级的最高分及最低分\n");
printf("请输入小于30个学生成绩,当输入为999时,输入完毕\n");
void action1(int);
void action2(int) ;
void action3(int);
void action4(int);
int p[30];
int i;
int a,b,c,d;
char m;
for(i=0;i<30;i++)
{scanf("%d",&p[i]);
if(p[i]==999)
printf("输入完毕\n");}
printf("请输入你想查询的序号\n");
m=getchar();
switch(m)
{
case '1':action1(a);break;
case '2':action2(b);break;
case '3':action3(c);break;
case '4':action4(d);break;
default:printf("请重新输入数字");
return 0;}
}
void actional()
{int p[30];
int i;
float aver;
int sum=0;
for(i=0;i<30;i++)
if(p[i]!=999)
sum=sum+p[i];
else break;
aver=sum/i;
printf("%5.2f\n",aver);
for(i=0;i<30;i++)
if(p[i]<aver)
printf("%d\n",&p[i]);
}
void actiona2()
{int p[30];
int m,n,i;
for(i=0;i<30;i++)
if(p[i]==999) break;
scanf("

  • 写回答

2条回答 默认 最新

  • 浪客 2022-06-04 18:05
    关注
    
    #include <stdio.h>
    
    void menu()
    {
        printf(" 请根据你需用的功能选择序号\n");
        printf("1.计算平均数,并输出所有小于平均数的数\n");
        printf("2.输入成绩,并判断成绩是否在数组中,若在则输出所在序号\n");
        printf("3.统计并显示优、良、中、及格、及不及格的人数\n");
        printf("4.显示本班级的最高分及最低分\n");
        printf("5.退出\n");
    }
    
    void action1(int *a, int len)
    {
        float ave = 0;
        int i;
        for (i = 0; i < len; i++)
            ave += a[i];
        ave /= len;
        printf("平均数为%.2f,小于平均数的数为:\n", ave);
        for (i = 0; i < len; i++)
        {
            if (a[i] < ave)
                printf("%d ", a[i]);
        }
        printf("\n");
    }
    
    void action2(int *a, int len)
    {
        int t, i, ishav = 0;
        scanf("%d", &t);
        for (i = 0; i < len; i++)
        {
            if (a[i] == t)
            {
                printf("%d ", i);
                ishav = 1;
            }
        }
        if (ishav == 0)
            printf("不存在该成绩\n");
        printf("\n");
    }
    
    void action3(int *a, int len)
    {
        int i;
        int y, l, z, j, bj;
        y = l = z = j = bj = 0;
        for (i = 0; i < len; i++)
        {
            if (a[i] >= 90)
                y++;
            else if (a[i] < 90 && a[i] >= 80)
                l++;
            else if (a[i] < 80 && a[i] >= 70)
                z++;
            else if (a[i] < 70 && a[i] >= 60)
                j++;
            else if (a[i] < 60)
                bj++;
        }
        printf("优:%d 良:%d 中:%d 及格:%d 不及格:%d\n", y, l, z, j, bj);
        printf("\n");
    }
    void action4(int *a, int len)
    {
        int i, max, min;
        max = min = *a;
        for (i = 1; i < len; i++)
        {
            if (a[i] > max)
                max = a[i];
            if (a[i] < min)
                min = a[i];
        }
        printf("最高分:%d 最低分:%d\n", max, min);
        printf("\n");
    }
    
    int main()
    {
    
        printf("请输入小于30个学生成绩,当输入为999时,输入完毕\n");
        int p[30], count = 0, t;
        for (count = 0; count < 30; count++)
        {
            scanf("%d", &t);
            if (t == 999)
            {
                printf("输入完毕\n");
                break;
            }
            p[count] = t;
        }
    
        do
        {
            menu();
            scanf("%d", &t);
            switch (t)
            {
            case 1:
                action1(p, count);
                break;
            case 2:
                action2(p, count);
                break;
            case 3:
                action3(p, count);
                break;
            case 4:
                action4(p, count);
                break;
            case 5:
                break;
            default:
                printf("请重新输入数字\n");
            }
        } while (t != 5);
    
        return 0;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 6月12日
  • 已采纳回答 6月4日
  • 赞助了问题酬金5元 6月4日
  • 赞助了问题酬金5元 6月4日
  • 展开全部

悬赏问题

  • ¥15 VESTA绘图原子颜色显示异常
  • ¥15 天翼云搭建多ip l2tp
  • ¥30 matlab求解刃位错方程
  • ¥15 python实现CAD识图
  • ¥15 如何实现在renpy中创建并应用不同大小尺寸对话框?
  • ¥15 table表格有一列是固定列 滑动到最下面时 固定的那一列有几行没显示出来
  • ¥20 单细胞数据注释时报错
  • ¥15 vscode编译ros找不到头文件,cmake.list文件出问题,如何解决?(语言-c++|操作系统-linux)
  • ¥15 通过AT指令控制esp8266发送信息
  • ¥15 有哪些AI工具提供可以通过代码上传EXCEL文件的API接口,并反馈分析结果