#c
Вопрос:
Я новичок в C и пытаюсь изучать структуры данных, выполняя упражнения. Это код, который я написал. Я не понимаю, почему он даже не входит в цикл for.
/* Define a structure to store the name, an array
marks[] which stores the marks of three different
subjects, and a character grade. Write a program
to display the details of the student whose name
is entered by the user.*/
#include <stdio.h>
int main()
{
struct stud_info
{
char name[20];
int marks [2][5];
int char_grade;
};
struct stud_info array[20];
struct stud_info stud1;
int i,j;
printf("Enter name of student:n");
scanf("%s",stud1.name);
printf("Enter student char_grade:n");
scanf("%d",stud1.char_grade);
for( i=0;i<=2;i )
for( j=0;j<=5;j )
{
printf("Enter grade for [%d]st subject:n",i);
scanf("%d",amp;stud1.marks[i][j]);
}
return 0;
}
Комментарии:
1. Переполнение границ массива: пожалуйста, измените на
for( i=0;i<2;i ) for( j=0;j<5;j )
длину массиваn
, на которую можно проиндексироватьn-1
.2. .. но перед тем, как петли
scanf("%d",stud1.char_grade);
должны бытьscanf("%d",amp;stud1.char_grade);
Спецификатору%d
нужен адрес его целевого объекта вscanf()
, но не вprintf()
.3. @WeatherVane Спасибо вам за время, которое вы потратили на ответ. Я изменю это, и я верю, что теперь это должно сработать!
4. Пожалуйста, никогда не говори так, это звучит так, как будто я был недостаточно быстр. Достаточно будет просто «спасибо за потраченное время».