这是我的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中有结构,但是还没有被教过,我需要用我学到的知识来解决这个问题。