ZXPoo 发表于 2021-11-14 15:58:37

求助求助

1. 写程序,从键盘输入10个学生的成绩,并完成以下操作:
(1)10个学生的成绩按照从大到小的顺序排列;
(2)统计最高分和最低分;
(3)求平均成绩;
(4)统计优秀、良、中、及格和不及格人数(优秀>=90,80=<良<90,70=<中<80,60=<及格<70,不及格<60)。
2.编写程序,要求用下标和指针两种方式访问二维数组,计算矩阵(5行5列)以下值,:
(1)主对角线元素之和;
(2)除对角线外所有元素之和;
(3)上三角元素之和;
(4)首行、首列、末行和末列的所有元素之和。
3. 利用指针编写程序,实现在一个字符串的任意位置插入一个字符(要求插入字符的位置由用户从键盘输入)。

傻眼貓咪 发表于 2021-11-14 16:22:34

本帖最后由 傻眼貓咪 于 2021-11-14 16:25 编辑

#include <stdio.h>
#include <stdlib.h>

int sort(const void * elem1, const void * elem2) // 定义函数:用于进行排序
{
    int f = *((int*)elem1);
    int s = *((int*)elem2);
    if (f > s) return1;
    if (f < s) return -1;
    return 0;
}

int main()
{   
    int arr, A = 0, B = 0, C = 0, D = 0, E = 0;
    float sum = 0;
   
    for(size_t i = 0; i < 10; i++) scanf("%d", &arr);
    qsort(arr, sizeof(arr)/sizeof(*arr), sizeof(*arr), sort); // 排序
   
    for(int i = 0; i < 10; i++){
      sum += arr;
      if(arr >= 90) A++;
      else if(arr >= 80) B++;
      else if(arr >= 70) C++;
      else if(arr >= 60) D++;
      else E++;
    }
    sum /= 10;
   
    printf("最高分:%d\n", arr);
    printf("最低分:%d\n", arr);
    printf("平均分数:%f\n", sum);
    printf("优秀%d人\n良%d人\n中%d人\n及格%d人\n不及格%d人\n", A, B, C, D, E);
   
    return 0;
}输入/输出:18                              
99
75
65
23
86
45
55
12
2
最高分:99
最低分:2
平均分数:48.000000
优秀1人
良1人
中1人
及格1人
不及格6人

ZXPoo 发表于 2021-11-14 16:39:07

还有两个题可以写一下吗
页: [1]
查看完整版本: 求助求助