Это программа для подготовки простого студента marklist:Печати со структурой
#include <stdio.h>
#include <conio.h>
#define SIZE 50
struct mark {
char name[50];
float marks[5];
};
int main() {
int sn, subn, i, j;
printf ("\n Enter Number of Students : ");
scanf ("%d",&sn);
printf ("\n");
struct mark n[SIZE];
for (i = 1; i < sn + 1; ++i){
printf (" Enter Name of Student %d : ",i);
scanf ("%s",&n[i - 1].name);
for (j = 1; j < 6; ++j){
printf (" Enter Marks of Subject %d : ",j);
scanf ("%f",&n[i - 1].marks[j - 1]);
}
}
printf ("\n\n ------------------------------------------------------------------- \n\n");
printf (" Student Name \t\t Sub 1\t Sub 2\t Sub 3\t Sub 4\t Sub 5");
printf ("\n --------------------------------------------------------------------\n");
for (i = 0; i < sn; ++i) {
printf ("\n %s \t\t ",n[i].name);
for (j = 0; j < subn; ++j){
printf ("%d \t",n[i].marks[j]); /* Problem with this line. Prints integers like -24611 etc.*/
}
}
getch();
return 0;
}
Когда я доберусь до отмеченной линии, программа печатает некоторые числа как -241563 и т.д.
Что случилось? Это что-то со структурой? Сначала он печатает пять 0, когда он печатает метки. А затем печатает целые числа, такие как -241563. Пожалуйста помоги.
'marks' является массивом' float's. Используйте% f. –