在2D数组中将字符串作为输入时出现问题

时间:2019-11-14 19:10:48

标签: c string input

这是我的C编程任务中的问题:

编写一个C程序,为五个不同的科目输入'n'名学生的姓名,年龄和分数,并打印得分最高的得分手。

我的代码:

#include<stdio.h>
#include<string.h>

void main()
{
    int n;
    printf("Enter number of students: ");
    scanf("%d", &n);
    char name[n][1000];
    int age[n],marks[n][1000];
    int i = 0;
    while(i<n) // input loop
    {
        printf("Enter name, age and marks of Student %d: \n", i+1);
        gets(name[i]);
        printf("Enter age: ");
        scanf("%d", &age[i]);
        for(int j=0;j<5;j++)
            scanf("%d", &marks[i][j]);
    }
    int marks_sum[n];

    for(int i=0;i<n;i++) // initializing all array values to 0
        marks_sum[i] = 0;

    for(int i=0;i<n;i++) // storing sum of marks
        for(int j=0;j<5;j++)
    {
        marks_sum[i] += marks[i][j]; 
    }

    int max_index,max = 0;

    for(int i=0;i<n;i++) // getting index of student with max marks
    {
        if(marks_sum[i] < max)
        {
            max = marks_sum[i];
            max_index = i;
        }
    }

    // Output
    printf("Top Scorer is: ");
    printf("Name: ");
    puts(name[max_index]);
    printf("\nAge: %d\n", age[i]);
    printf("Total Marks: %d", marks_sum[max]);

}

在输入名称作为输入时,我似乎遇到了问题。我究竟做错了什么?我也知道C中有结构,但是还没有被教过,我需要用我学到的知识来解决这个问题。

0 个答案:

没有答案