m0_70627179 2022-05-28 14:54 采纳率: 100%
浏览 68
已结题

这个源程序怎么写啊,完全不会

1.输入所有同学同一门课程的成绩
2.找出成绩的最高分
3.找出成绩的最低分
4.求出成绩的平均分
5.统计成绩中任意一个分数段的学生人数
6.将最低分放在所有成绩的第一位(换成最高分也可以)
7.输出所有成绩
要求:(1)编写的程序要体现出函数、数组的应用。
(2)程序演示要体现上述功能。

  • 写回答

3条回答 默认 最新

  • 树下等苹果 2022-05-28 19:02
    关注

    img


    代码如下:

    #include<stdio.h>
    #define MAX 100
    int FindMax(int a[],int n)  //输入参数为数组及其长度
    {
        int max = a[0];
        for (int i = 0; i < n; i++)
            if (a[i] > max)
                max = a[i];
        return max;           //函数返回值为数组最大值
    }
    int FindMin(int a[], int n)  //输入参数为数组及其长度
    {
        int min = a[0];
        for (int i = 0; i < n; i++)
            if (a[i] < min)
                min = a[i];
        return min;           //函数返回值为数组最小值
    }
    double average(int a[], int n)
    {
        int sum=0;
        double ave;
        for (int i = 0; i < n; i++)
            sum += a[i];
        ave = (double)sum / n;
        return ave;//函数返回值为数组平均值
    }
    int sta_num(int a[], int n)
    {
        int sta_min, sta_max,count=0;
        printf("请输入要统计的分数段(用空格隔开,如:20 90 表示统计20到90分数段):");
        scanf_s("%d %d", &sta_min, &sta_max);
        for (int i = 0; i < n; i++)
            if (a[i] >= sta_min && a[i] <= sta_max)
                count++;
        return count;
    }
    void PutMinFirst(int a[], int n)
    {
        for(int i=0;i<n-1;i++)        //冒泡排序将分数从小到大排序
            for(int j=0;j<n-1-i;j++)
                if (a[j] > a[j + 1])
                {
                    int temp;
                    temp = a[j];
                    a[j] = a[j + 1];
                    a[j + 1] = temp;
                }
    }
    void Print(int a[], int n)
    {
        for (int i = 0; i < n; i++)
            printf("%d\t", a[i]);
    }
    int main()
    {
        int n;//同学人数
        int a[MAX];//成绩数组
        printf("请输入学生人数:");
        scanf_s("%d", &n);
        printf("请输入%d个学生成绩:",n);
        for (int i = 0; i < n; i++)
            scanf_s("%d", &a[i]);//输入n个同学的成绩
        printf("max=%d\n", FindMax(a, n));           //求最大数并输出
        printf("min=%d\n", FindMin(a, n));            //求最小数并输出
        printf("average=%lf\n", average(a, n));            //求平均数并输出
        printf("该分数段人数=%d\n", sta_num(a, n));            //求某分数段并输出其人数
        PutMinFirst(a, n);                            //冒泡排序将分数从小到大排序
        Print(a, n);                                 //求某分数段并输出其人数
        return 0;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 6月5日
  • 已采纳回答 5月28日
  • 创建了问题 5月28日

悬赏问题

  • ¥15 python怎么在已有视频文件后添加新帧
  • ¥20 虚幻UE引擎如何让多个同一个蓝图的NPC执行一样的动画,
  • ¥15 fluent里模拟降膜反应的UDF编写
  • ¥15 MYSQL 多表拼接link
  • ¥15 关于某款2.13寸墨水屏的问题
  • ¥15 obsidian的中文层级自动编号
  • ¥15 同一个网口一个电脑连接有网,另一个电脑连接没网
  • ¥15 神经网络模型一直不能上GPU
  • ¥15 pyqt怎么把滑块和输入框相互绑定,求解决!
  • ¥20 wpf datagrid单元闪烁效果失灵