m0_68362664 2022-03-19 18:06 采纳率: 68.2%
浏览 11
已结题

完善程序case1,功能234都无法运行出正确结果

#include <stdio.h>
#include <stdlib.h>
#define SIZE 30 //成绩数组总长度
#include <stdio.h>
#include <stdlib.h>
#define SIZE 30 //成绩数组总长度
#define SEGMENTSIZE 11 //分数段总共有0-10,总计11个段
#define FAILURE -1 //返回失败结果
#define SUCCESS 1 //返回成功结果
#define ASCEND 1 //升序
#define DECEND -1 //降序

int countStuNum(int array[], int length)
{
int i, stuNumber = 0;
for (i = 0; i < length; i++)
if (array[i] != -1)
stuNumber++; //因为数组的结尾是-1,统计非-1的个数
else break;
printf("stuNumber:%d\n", stuNumber);
return stuNumber;
}

int countMaxScore(int array[], int len)
{
int max = 0;
for(int i = 0; i < len; i++)
{
if(array[i] >= max)
max = array[i];
}

printf("MAX:%d\n", max);

return max;

}

int countMinScore(int array[], int len)
{
int min = 101;
for(int i = 0; i < len; i++)
{
if(array[i] <= min)
min = array[i];
}

printf("MIN:%d\n", min);

return min;

}

float countAverageScore(int array[], int len)
{
float ave, sum = 0;
for(int i = 0; i < len; i++)
{
sum += array[i];
}
ave = sum / len;
printf("AVE:%f\n", ave);

return ave;

}

int main()
{

//注:数组中有25个学生分数,其中最一个-1表示该元素之前的数组元素值为有效分数。
int score[SIZE] = { 78, 65, 23, 34, 56, 87, 90, 99, 45, 88, 54, 95, 63, 66, 89, 54, 64, 77, 63, 56, 5, 86, 97, 94, 30, -1 }; //给score[1]到score[25]赋初值。
int i;
int stuNumber, maxScore, minScore, searchArrayPosition;
int searchScore, appendScoreNum, insertScoreNum, result, arrayPossition;
int order;//排序方向
float averageScore, medianScore;
enum Status { GAMEOVER, CONTINUE };
int choiceNum;
enum Status gameStatus;

int len = 0;
do
{

    gameStatus = CONTINUE;
    printf("\n\t\t学  生  成  绩  管  理  系  统  1.3 \n\t\t\tDesigned by HuangX\n");
    printf("\n\t0.退出程序\t\t\t1.显示所有成绩\n\n");
    printf("\t2.统计最高分\t\t\t3.统计最低分\n\n");
    printf("\t4.统计平均分\t\t\n");
    printf("请选择功能:");

    scanf("%d", &choiceNum);
    fflush(stdin);//清除键盘缓冲区的数,否则当输入字符时会出现死循环

    switch (choiceNum)
    {
    case 0:
        gameStatus = GAMEOVER;
        return 1;
        break;
    case 1:
       
        break;
    case 2:
        countMaxScore( score,  len);
        break;
    case 3:
        countMinScore( score,  len);
        break;
    case 4:
        countAverageScore(score,  len);
        break;
    default:
        printf("输入错误,重新输入!\n");
        break;
    }
}
while(1);
return 0;

}

  • 写回答

2条回答 默认 最新

  • fuill 2022-03-19 18:20
    关注
    int score[] = { 78, 65, 23, 34, 56, 87, 90, 99, 45, 88, 54, 95, 63, 66, 89, 54, 64, 77, 63, 56, 5, 86, 97, 94, 30, -1 };
        int len= sizeof(score)/sizeof(int);
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 4月3日
  • 已采纳回答 3月26日
  • 创建了问题 3月19日

悬赏问题

  • ¥15 使用ue5插件narrative时如何切换关卡也保存叙事任务记录
  • ¥20 软件测试决策法疑问求解答
  • ¥15 win11 23H2删除推荐的项目,支持注册表等
  • ¥15 matlab 用yalmip搭建模型,cplex求解,线性化处理的方法
  • ¥15 qt6.6.3 基于百度云的语音识别 不会改
  • ¥15 关于#目标检测#的问题:大概就是类似后台自动检测某下架商品的库存,在他监测到该商品上架并且可以购买的瞬间点击立即购买下单
  • ¥15 神经网络怎么把隐含层变量融合到损失函数中?
  • ¥15 lingo18勾选global solver求解使用的算法
  • ¥15 全部备份安卓app数据包括密码,可以复制到另一手机上运行
  • ¥20 测距传感器数据手册i2c