我要从.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