我写了个代码,但不知道哪错了,就一个错误

img


大家能看看吗,错误的地方和信息我都拍了,源代码也拍了一部分,我真不知道哪错了

@CSDN-Ada助手 能帮我检查一下哪错了吗

19行删了 17行放下来

【以下回答由 GPT 生成】

代码中有几个错误地方:

  1. #include<stdioh> 应该是 #include<stdio.h>,缺少了括号"h"。
  2. #include<stdlib.h 应该是 #include<stdlib.h>,缺少了右括号">"。
  3. typedef struct语句后面,定义了一个字符变量char grades,应该是char grade,因为它是单一字符,而不是字符串。另外,在char grades后面也缺少了一个分号";"。
  4. 变量addstudent的参数grades是一个字符,但是在使用scanf读取输入时,却使用了%s,这是用于读取字符串的格式符,而应该使用%c来读取单一字符。例如:scanf("%c", &addstudent.grades);
  5. 变量addstudent的参数grades 是一个字符,但是在判断等级时,使用了双引号 " " 将等级的字母括起来,这使得等级被视为字符串而不是字符。应该使用单引号 ' ' 来括起等级字母。例如:addstudent.grades = 'A';

以下是修改后的代码:

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define SIZE 86

typedef struct {
    int no;
    char sno[20];
    char sname[50];
    float usual;
    float expr;
    float exams;
    float total;
    char grade;
} Student;

int main() {
    Student addstudent;

    printf("请输入学生编号:");
    scanf("%d", &addstudent.no);
    printf("请输入学生学号:");
    scanf("%s", addstudent.sno);
    printf("请输入学生姓名:");
    scanf("%s", addstudent.sname);
    printf("请输入学生平时成绩:");
    scanf("%f", &addstudent.usual);
    printf("请输入学生实验成绩:");
    scanf("%f", &addstudent.expr);
    printf("请输入学生期末考试成绩:");
    scanf("%f", &addstudent.exams);

    addstudent.total = 0.2 * addstudent.usual + 0.2 * addstudent.expr + 0.6 * addstudent.exams;

    if(addstudent.total >= 90) {
        addstudent.grade = 'A';
    } else if (addstudent.total >= 80) {
        addstudent.grade = 'B';
    } else if (addstudent.total >= 70) {
        addstudent.grade = 'C';
    } else if (addstudent.total >= 60) {
        addstudent.grade = 'D';
    } else {
        addstudent.grade = 'E';
    }

    return 0;
}

希望以上修改能解决你的问题。



【相关推荐】



如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^