求助求助
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: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人 还有两个题可以写一下吗
页:
[1]