【问题标题】:I want to create a program to calculate the result of a student by using the structure and print the position [closed]我想创建一个程序来使用结构计算学生的结果并打印位置[关闭]
【发布时间】:2021-12-15 05:11:05
【问题描述】:

在这个程序中,我想使用结构获取学生信息并打印位置。而在测验部分,只有最好的一个会计入三分之二。现在,在给出所有输入之后,一切正常,除了在第 74 行我添加所有标记但是当我运行不计算的代码时。谁能找出我的问题所在。

#include <stdio.h>

struct student_profile {
    char name[100];
    int ID[100];
    int Final;
    int mid;
    int attendance;
    int assignment;
    int quiz1;
    int quiz2;
    int quiz3;
    int total_marks;
} s[100];

int comparison(int quiz1, int quiz2, int quiz3) {
    int quiz_best;

    if (quiz1 > quiz2 && quiz1 > quiz3) {
        printf("Best quiz mark is: \n", quiz1);
        quiz_best = quiz1;
    } else
    if (quiz2 > quiz1 && quiz2 > quiz3) {
        printf("Best quiz mark is: \n", quiz2);
        quiz_best = quiz2;
    } else {
        printf("Best quiz mark is: \n", quiz3);
        quiz_best = quiz3;
    }
    return quiz_best;
}

int main() {
    int i, n, quiz_best;

    printf("Number of students: \n");
    scanf("%d", &n);
    for (i = 0; i < n; i++) {
        printf("\nStudent No: %d\n", i);
        printf("Name: ");
        scanf("%99s", s[i].name);
        printf("ID: ");
        scanf("%99s", s[i].ID);
        printf("Final: ");
        scanf("%d", &s[i].Final);
        printf("mid: ");
        scanf("%d", &s[i].mid);
        printf("attendance: ");
        scanf("%d", &s[i].attendance);
        printf("assignment: ");
        scanf("%d", &s[i].assignment);
        printf("quiz1: ");
        scanf("%d", &s[i].quiz1);
        printf("quiz2: ");
        scanf("%d", &s[i].quiz2);
        printf("quiz3: ");
        scanf("%d", &s[i].quiz3);
    }
    printf("\n Students Informations:\n");

    for (i = 0; i < n; i++) {
        printf("Student No: %d\n", i);
        printf("Name: %s\n", s[i].name);
        printf("ID: %d\n", s[i].ID);
        printf("Final: %d\n", s[i].Final);
        printf("mid: %d\n", s[i].mid);
        printf("attendance: %d\n", s[i].attendance);
        printf("assignment: %d\n", s[i].assignment);
        printf("quiz1: %d\n", s[i].quiz1);
        printf("quiz2: %d\n", s[i].quiz2);
        printf("quiz3: %d\n", s[i].quiz3);
        quiz_best = comparison(s[i].quiz1, s[i].quiz2, s[i].quiz3);
        printf("The best quiz mark is: %d\n", quiz_best);
        printf("Total marks: ",quiz_best+ s[i].Final+ s[i].mid+ s[i].assignment+ s[i].attendance );
    }

    return 0;
}

【问题讨论】:

  • printf("Total marks: " 缺少一些东西...你想要一个%d 吗?
  • 你能找出丢失的东西吗
  • 我确切地告诉过你缺少什么。将该行与程序中的所有其他 printf 进行比较。

标签: arrays c data-structures structure


【解决方案1】:

根本原因

您只是错过了在第 74 行的 printf 函数中添加格式说明符

解决方案:

如下修改你的第 74 行:

printf("Total marks: %d",quiz_best+ s[i].Final+ s[i].mid+ s[i].assignment+ s[i].attendance );

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多