输入一个正整数n,再输入n个学生的姓名和百分制成绩,将其转换为两级制成绩后输出。要求定义和调用函数set_grade(stu, n),其功能是根据结构数组stu中存放的学生的百分制成绩score,将其转换为两级制成绩,并赋给grade。百分制成绩到两级制成绩的转换规则:大于或等于60分为P,否则为F。 #include<stdio.h> #define MAXN 100 struct student{ char name[20]; int score; char grade; }; void set_grade( struct student *p, int n ); int main() { int i, n; struct student stu[MAXN]; scanf("%d", &n); for(i = 0; i < n; i++){ scanf("%s%d", stu[i].name, &stu[i].score); } set_grade(stu, n); for(i = 0; i < n; i++) printf("%s %c\n", stu[i].name, stu[i].grade); return 0; } void set_grade(struct student *p, int n) { struct student *q = p + n - 1; while( ){ p++; } }
时间: 2024-04-03 22:31:53 浏览: 74
您的问题是关于C语言的程序设计,需要实现将学生的百分制成绩转换为两级制成绩的功能。那么我来给您解答一下。
首先,我们需要在结构体中增加一个成员变量,用来存储转换后的两级制成绩,即char grade。
其次,我们需要在函数set_grade中遍历结构体数组,对每一个学生的百分制成绩进行转换,并将转换后的两级制成绩赋值给grade。
具体实现方法如下:
void set_grade(struct student *p, int n) {
for(int i=0; i<n; i++) {
if(p[i].score >= 60) {
p[i].grade = 'P';
} else {
p[i].grade = 'F';
}
}
}
在函数中使用for循环遍历结构体数组,对每一个学生的百分制成绩进行判断,如果大于等于60分,则将grade赋值为'P',否则赋值为'F'。
最后,在主函数中调用set_grade函数即可将百分制成绩转换为两级制成绩并输出。
相关问题
输入一个正整数n,再输入n个学生的姓名和百分制成绩,将其转换为两级制成绩后输出。要求定义和调用函数set_grade(stu, n),其功能是根据结构数组stu中存放的学生的百分制成绩score,将其转换为两级制成绩,并赋给grade。百分制成绩到两级制成绩的转换规则:大于或等于60分为P,否则为F。
好的,这是一个关于成绩转换的问题。以下是代码实现:
```c++
#include <iostream>
#include <string>
using namespace std;
struct Student {
string name;
double score;
char grade;
};
void set_grade(Student stu[], int n) {
for(int i = 0; i < n; i++) {
if(stu[i].score >= 60) {
stu[i].grade = 'P';
}
else {
stu[i].grade = 'F';
}
}
}
int main() {
int n;
cout << "请输入学生个数n:";
cin >> n;
Student stu[n];
for(int i = 0; i < n; i++) {
cout << "请输入第" << i+1 << "个学生的姓名和百分制成绩:";
cin >> stu[i].name >> stu[i].score;
}
set_grade(stu, n);
cout << "转换后的成绩为:" << endl;
for(int i = 0; i < n; i++) {
cout << stu[i].name << "的成绩为:" << stu[i].grade << endl;
}
return 0;
}
```
代码中定义了一个结构体Student,包含姓名、百分制成绩和两级制成绩。set_grade函数根据学生的百分制成绩score,将其转换为两级制成绩grade,并赋给结构体中的成员变量。在主函数中,先输入学生的个数和姓名、百分制成绩,再调用set_grade函数进行成绩转换。最后输出转换后的成绩。
阅读全文