请你用C语言实现一个根据学生成绩设置其等级,并统计不及格人数的简单函数。 函数接口定义: int set_grade( struct student *p, int n ); 其中p是指向学生信息的结构体数组的指针,该结构体的定义为: 结构学生{ 整数; 字符名称[20]; 整数分数; 炭级; }; n是数组元素个数。学号num、姓名name和成绩score均是已经存储好的。set_grade函数需要根据学生的成绩score设置其等级。等级设置:85-100为A,70-84为B,60-69为C,0-59为D。同时,set_grade还需要返回不及格的人数。 裁判测试程序样例: #include <stdio.h> #define 最大 10 结构学生{ 整数; 字符名称[20]; 整数分数; 炭级; }; int set_grade( struct student *p, int n ); int main() { struct student stu[MAXN], *ptr; int n, i, count; PTR = STU; scanf(“%d\n”, &n); for(i = 0; i < n; i++){ scanf(“%d%s%d”, &stu[i].num, stu[i].name, &stu[i].score); } 计数 = set_grade(PTR, n); printf(“失败的计数 (<60): %d\n”, 计数); printf(“The grades:\n”); for(i = 0; i < n; i++) printf(“%d %s %c\n”, stu[i].num, stu[i].name, stu[i].grade); 返回 0; } /* 你的代码将被嵌在这里 */ 输入样例: 10 31001安妮85 31002 邦尼 75 31003 颂歌 70 31004 段 84 31005 苏珊90 31006保罗69 31007 帕姆 60 31008 苹果 50 31009南希100 31010鲍勃78 输出样例: 失败计数 (<60):1 成绩: 31001 安妮· 31002 邦尼 B 31003 卡罗尔 B 31004 丹· 31005 苏珊 A 31006 保罗 C 31007 帕姆 C 31008 苹果D 31009 南希 A 31010 鲍勃 B
时间: 2023-03-09 14:08:58 浏览: 198
#include<stdio.h>
struct student{
int num;
char name[20];
int score;
char grade;
};
int set_grade(struct student *p, int n){
int count=0;
for(int i=0;i<n;i++){
if(p[i].score>=85){
p[i].grade='A';
}else if(p[i].score>=70){
p[i].grade='B';
}else if(p[i].score>=60){
p[i].grade='C';
}else{
p[i].grade='D';
count++;
}
}
return count;
}
int main(){
struct student stu[3]={{1,"张三",89},{2,"李四",75},{3,"王五",60}};
int n=3;
int cnt=set_grade(stu,n);
printf("不及格的人数:%d\n",cnt);
return 0;
}答案:我可以根据你给出的信息,用C语言实现一个根据学生成绩设置其等级,并统计不及格人数的简单函数。代码如下:
相关问题
用c语言实现一个计算两个数的最大公约数的简单函数。函数接口定义:int gcd( int x, int y );
以下是用C语言实现计算两个数最大公约数的函数:
```c
int gcd(int x, int y) {
int remainder;
while (y != 0) {
remainder = x % y;
x = y;
y = remainder;
}
return x;
}
```
该函数使用欧几里得算法来计算两个数的最大公约数,即对两个数进行连续的辗转相除,直到余数为0。最终的除数即为两个数的最大公约数。
用c语言编程代码,输入学生人数和成绩,用函数编程统计不及格人数和平均分
以下使用C语言编写的程序,可以输入学生人数和成绩,使用函数编程统计不及格人数和平均分:
```c
#include <stdio.h>
// 统计不及格人数和平均分的函数
void statistics(int n, int scores[], int* fail_num, float* avg_score)
{
int sum = 0; // 总分
*fail_num = 0; // 不及格人数初始值为0
for (int i = 0; i < n; i++)
{
if (scores[i] < 60) // 不及格条件
{
(*fail_num)++; // 不及格人数加1
}
sum += scores[i]; // 累加总分
}
*avg_score = (float)sum / n; // 计算平均分
}
int main()
{
int n; // 学生人数
printf("请输入学生人数:");
scanf("%d", &n);
int scores[n]; // 存储学生成绩的数组
printf("请输入%d名学生的成绩:\n", n);
for (int i = 0; i < n; i++)
{
scanf("%d", &scores[i]);
}
int fail_num; // 不及格人数
float avg_score; // 平均分
statistics(n, scores, &fail_num, &avg_score); // 调用统计函数
printf("不及格人数:%d\n", fail_num);
printf("平均分:%.2f\n", avg_score);
return 0;
}
```
在上面的程序中,我们定义了一个 `statistics` 函数用于统计不及格人数和平均分。这个函数的参数包括学生人数 `n`,存储学生成绩的数组 `scores`,不及格人数指针 `fail_num` 和平均分指针 `avg_score`。在函数体中,我们使用循环遍历数组,判断成绩是否小于60,如果是,则不及格人数加1,同时累加总分。最后,计算平均分并将结果存储在 `avg_score` 指针所指的位置。
在主函数中,我们首先输入学生人数和成绩,然后调用 `statistics` 函数计算不及格人数和平均分,并将结果输出到屏幕上。