求 2 个学生的平均值

Finding average for 2 students

我是 运行 一个程序,用于 计算 2 个学生的平均值 。我遇到了麻烦 运行。出于某种原因,它说 找不到 。这是我第一次使用 Visual Studio,我不确定我的代码是问题还是程序。

请检查是否有错误并告诉我。

#include <stdio.h>

int main(void)
{
    int firstGrade1;
    int sGrade1;
    int tGrade1;
    int fGrade1;

    int TotalGrade1 = (firstGrade1 + sGrade1 + tGrade1 + fGrade1);
    int AveGrade1 = (TotalGrade1 / 4);

    printf("Please enter Student 1 first grade:\n");
    scanf("%d", &firstGrade1);

    printf("Please enter Student 1 second grade:\n");
    scanf("%d", &sGrade1);

    printf("Please enter Student 1 third grade:\n");
    scanf("%d", &tGrade1);

    printf("Please enter Student 1 fourth grade:\n");
    scanf("%d", &fGrade1);

    int firstGrade2;
    int sGrade2;
    int tGrade2;
    int fGrade2;

    int TotalGrade2 = (firstGrade2 + sGrade2 + tGrade2 + fGrade2);
    int AveGrade2 = (TotalGrade2 / 4);

    printf("Please enter Student 2 first grade:\n");
    scanf("%d", &firstGrade2);

    printf("Please enter Student 2 second grade:\n");
    scanf("%d", &sGrade2);

    printf("Please enter Student 2 third grade:\n");
    scanf("%d", &tGrade2);

    printf("Please enter Student 2 fourth grade:\n");
    scanf("%d", &fGrade2);

    printf("1. Student 1 grades:");
    printf("%d", firstGrade1, sGrade1, tGrade1, fGrade1);
    printf(". Average is ");
    printf("%d\n", AveGrade1);

    printf("2. Student 2 grades:");
    printf("%d", firstGrade2, sGrade2, tGrade2, fGrade2);
    printf(". Average is ");
    printf("%d", AveGrade2);

    system("pause");

    return (0);

}

这里是

int TotalGrade1 = (firstGrade1 + sGrade1 + tGrade1 + fGrade1);

并没有告诉它 TotalGrade1 将永远是这 4 个变量相加的值。它将这些变量的 当前 值的总和分配给 TotalGrade1。由于那些未初始化,这是未定义的行为。将 TotalGrade1AveGrade1 的计算移动到读入这些值之后,当然,TotalGrade2AveGrade2 也是如此。

此外,请考虑以下打印:

printf("%d", firstGrade1, sGrade1, tGrade1, fGrade1);

您正在打印四个 int,为什么只有一个格式说明符?格式字符串应为 "%d %d %d %d".

我建议始终注意编译器的警告。通常你的编译器应该警告你不正确的 printf 格式字符串以及使用未初始化的变量。


附带说明一下,您有很多代码重复。如果您没有两个学生和四个年级,而是一百个学生每个十个年级怎么办?想象一下代码量,以及代码的工作量 copy/pasting。相反,尝试这样的事情:

int main(void)
{
    int Grade[2][4]; 
    int AveGrade[2];
    int TotalGrade[2];

    for (int i = 0; i < 2; i++) {
        for (int j = 0; j < 4; j++) {
            printf("Please enter Student %d j. grade:\n", i + 1, j+1);
            scanf("%d", &Grade[i][j]);
        }

        TotalGrade[i] = 0;
        for (int j = 0; j < 4; j++)
            TotalGrade[i] += Grade[i][j];
        AveGrade[i] = (TotalGrade[i] / 4);
    }

    for (int i = 0; i < 2; i++) {
        printf("%d. Student %d grades:", i+1, i+1);
        for (int j = 0; j < 4; j++)
        printf("%d ", Grade[i][j]);
        printf(". Average is ");
        printf("%d\n", AveGrade[i]);
    }

    system("pause");
    return (0);
}