我要從.ssv文件讀取數據並創建一個包含名稱,ID,Exam1,Exam2,Project1,Project2,Average和Grade(letter)的學生數據庫。平均數不在文件中,因此必須進行計算。我不確定我的平均計算和結構聲明。任何其他修補程序將受到歡迎。c中的結構數組
#include <stdio.h>
typedef struct {
char name[26];
int I_D[25];
int exam[3];
int project[3]
float average[3];
char grade[3];
} STUDENT;
void printStuAry(int size, STUDENT stuAry[]);
int main(int argc, char* argv[])
{
if (argc != 2) {
printf("ERROR\n");
return 1;
}
STUDENT stuAry[5];
FILE* f = fopen(argv[1], "r");
if (f == NULL) {
printf("Error opening file %s.\n", argv[1]);
return 1;
}
char line[65];
int ind = 0;
while (fgets(line, sizeof(line), f) != NULL) {
sscanf(line, "%25[^;] ; %d %d %d %d %d %c",
stuAry[ind].name,
&stuAry[ind].I_D,
&stuAry[ind].exam[0],
&stuAry[ind].exam[1],
&stuAry[ind].project[0],
&stuAry[ind].project[1]
&stuAry[ind].grade);
float stuAry.average = stuAry.exam[0] + stuAry.exam[1] + stuAry.project[0] + stuAry.project[1]/4;
ind++;
}
printStuAry(5, stuAry);
if (fclose(f) == EOF) {
printf("Error closing file %s.\n", argv[1]);
return 1;
}
return 0;
}
void printStuAry(int size, STUDENT stuAry[])
{
for (int i=0; i<size; i++) {
printf("Student \"%s\" score %d, %d and %d and %d on midterms, "
"and %c on the final.\n",
stuAry[i].name, stuAry[i].exam[0],
stuAry[i].exam[1], stuAry[i].project[0],
stuAry[i].project[1], stuAry[i].average,
stuAry[i].final);
}
}
建議不是一個解決方案。結構元素的順序會節省一些空間。整理char變量。 –
你知道如何用手計算平均值嗎?你有沒有測試過你的代碼?你在運行時使用調試器來查看一些變量值嗎? – Ripi2
@ Ripi2我已編譯它並收到一些錯誤。其中之一是'錯誤:無效的操作數到二進制*(有'int *'和'int')' – josmar