输入学生人数后输入每个学生的成绩,最后输出学生的平均成绩、最高成绩和最低成绩。 要求使用动态内存分配来实现。
[color=#000000]# include [/color][color=#000000]# include [/color][color=#000000]int main ( ) [/color][color=#000000]{ [/color][color=#000000] int n, i; [/color][color=#000000] float *p, sum, max, min, avg; [/color][color=#000000] printf("input students’ number n: "); [/color][color=#000000] scanf("%d", &n); [/color][color=#000000] [/color][color=#000000]/*[/color][color=#000000]为数组 [/color][color=#000000]p [/color][color=#000000]动态分配 [/color][color=#000000]n [/color][color=#000000]个浮点数 [/color][color=#000000]float [/color][color=#000000]类型大小的空间[/color][color=#000000] */ [/color][color=#000000] if ((p=(float *)calloc(n, sizeof(float))) == NULL) { [/color][color=#000000] printf("Not able to allocate memory. \n"); [/color][color=#000000] exit(1); [/color][color=#000000] } [/color][color=#000000] sum=0.0; [/color][color=#000000] max=-1; /*[/color][color=#000000]初始化[/color][color=#000000] */ [/color][color=#000000] min=1000; [/color][color=#000000] printf("input %d students’ scores: ", n); [/color][color=#000000]/* [/color][color=#000000]提示输入 [/color][color=#000000]n [/color][color=#000000]个整数[/color][color=#000000] */ [/color][color=#000000] for (i = 0; i < n; i++){ [/color][color=#000000] scanf("%f", p+i); [/color][color=#000000] sum=sum+*(p+i); [/color][color=#000000] if (min>*(p+i)) [/color][color=#000000] min=*(p+i); [/color][color=#000000] [/color][color=#000000] if (max<*(p+i)) [/color][color=#000000] max=*(p+i); [/color][color=#000000][color=#000000] } [/color][/color][color=#000000] avg=sum/n; [/color][color=#000000] printf("The avg is %f, max is %f, min is %f\n",avg,max,min); [/color][color=#000000] [/color][color=#000000]free(p); [color=#000000]/* [/color][color=#000000]释放动态分配的空间[/color][color=#000000] */[/color][/color][color=#000000] return 0; [/color][color=#000000] [/color][color=#000000][color=#000000]}[/color][/color]
举一反三
内容
- 0
已知5个学生的4门课的成绩,要求求出每个学生的平均成绩,然后对平均成绩从高到低将各学生的成绩记录排序。(成绩最高的学生的排在数组的最前行,成绩最低的学生牌子啊数组的最后面的一行)
- 1
有一个班3个学生,己知每个学生有4门课的成绩,要求输出平均成绩最高的学生的成绩以及该学生的序号。
- 2
键盘输入一个班n个学生的C语言成绩,求超过平均成绩(含平均成绩)的学生人数和低于平均成绩的学生人数,编程实现。
- 3
⒊有5个学生,每个学生数据包括学号、姓名、性别、3门成绩、总成绩、平均成绩。从键盘输入学生成绩。然后用选择法按照总成绩由大到小对5个学生进行排序,最后输出排序的结果。要求输入、排序、输出用3个自定义函数实现。
- 4
要查询入学成绩最高的学生学号,以下SQL语句错误的是()。 A: SELECT 学号 FROM 学生 WHERE 入学成绩>=ALL(SELECT入学成绩 FROM学生) B: SELECT 学号 FROM 学生 WHERE 入学成绩>=ANY(SELECT 入学成绩 FROM学生) C: SELECT 学号 FROM 学生 WHERE 入学成绩 IN(SELECT MAX(入学成绩) FROM学生) D: SELECT 学号FROM 学生 WHERE 入学成绩=(SELECT MAX(入学成绩) FROM 学生)