【发布时间】:2013-03-23 00:34:59
【问题描述】:
谁能帮助我完成以下 c 程序?这只是我在 c 中的第二个程序,所以我不知道我在做什么。
我正在尝试用 c 创建一个程序来读取文件“input.txt”并根据学生正确答案的百分比以星号给出学生的数学分数
我想出的只是一个无限循环 的
+:*
-:*
*:*
/:*
input.txt 类似于下面
1 学生人数
卡拉学生姓名
8 10 加分由 8/10 决定
50 80 减法分数由 50/80 决定
30 60 乘法分数由 30/60 决定
2 5 由2/5决定的分区分数
具有所需的输出
卡拉
+: * * * * * * * *
-: * * * * * *
*: * * * * *
/: * * * *
我的代码
int num;
char name;
int sum;
int cur;
int i;
int avg;
//call file
FILE*ifp=fopen("input.txt","r");
fscanf(ifp,"%d",&num);
for (i=0;i=num;i++){
fscanf(ifp,"%c",&name);
printf("%c",&name);
for(sum=0;sum<=4;sum++){
fscanf(ifp,"%d",&cur);
scanf(cur,"%d %d")
avg=%d/%d;
if (sum==1)
printf("+:");
else if (sum==2)
printf("-:");
else if (sum==3)
printf("*:");
else if (sum==4)
printf("/:");
if (avg==1)
printf("**********\n");
else if (avg>=.9)
printf("*********\n");
else if (avg>=.8)
printf("********\n");
else if (avg>=.7)
printf("*******\n");
else if (avg>=.6)
printf("******\n");
else if (avg>=.5)
printf("*****\n");
else if (avg>=.4)
printf("****\n");
else if (avg>=.3)
printf("***\n");
else if (avg>=.2)
printf("**\n");
else if (avg>=.1)
printf("*\n");
else
printf("\n");
}
}
//close file
fclose(ifp);
return 0;
如果有人可以帮助我,我将不胜感激。
【问题讨论】:
-
你试过在调试器中运行这个吗?
-
更好地使用 1)
++i而不是i++2)1 == sum而不是sum == 1