編寫一個使用循環顯示「名稱」「e1」「e2」「e3」「」e4「」avg「和」grade「的小圖的函數。在函數中,我無法打印存儲在「名稱」數組中的元素。在循環中打印字符串數組
這是其全部功能:
void display(stuff *everything)
{
int q = 0;
printf("\n\n Name \t\t E1 \t E2 \t E3 \t E4 \t Avg \t Grade");
for(q=0; q<13; q++)
{
printf("\n %s \t %d \t %d \t %d \t %d \t %.2f \t %c",
everything[q].names[q],
everything[q].scores[0],
everything[q].scores[1],
everything[q].scores[2],
everything[q].scores[3],
everything[q].average,
everything[q].letter);
}
return;
}
一切都從這樣的:
typedef struct structure
{
char names[20];
int scores[4];
float average;
char letter;
} stuff;
一旦你主要是;
stuff everything[13];
int i=0;
int j=0;
int a=0;
FILE *student, *score;
student = fopen("student.dat", "r");
score = fopen("scores.dat", "r");
名稱填充像這樣:
for(a=0; a<13; a++)
{
fscanf(student, "%s", &everything[a].names[a]);
}
fclose(student);
這是函數調用:
display(everything);
它編譯罰款,但在運行它時,我得到一個分段錯誤。經過一些測試後,我或多或少地發現它來自函數中的%s,我不知道如何解決它。幫幫我?
這行看起來很可疑fscanf(學生,「%s」,&一切[a] .names [a]);'' – Duck 2013-04-30 00:48:28