帮我看看这个程序有什么问题~~

#include<stdio.h>#include<string.h>#defineN10//试题中的题目数量voidhc();voidhc(){inti=0,score... #include <stdio.h>
#include <string.h>
#define N 10 //试题中的题目数量
void hc();
void hc(){
int i=0,score=0,length=0;
char answer[N];//存放用户的回答
char result[N]="CACBCACCCA";//存放正确的答案
FILE *p;
char ch;
char a=4;
p=fopen("D:\\test.txt","r");
ch=fgetc(p);
printf("%c以下是动漫知识选择题,每题只有一个正确答案,请认真作答%c\n(答对一题得10分,答错不得分)\n\n",a,a);
while(ch!=EOF){
if(ch!='*')
printf("%c",ch);
if(ch=='*') {
printf("\n输入选择的答案:");
answer[i]=getchar();//消耗回车字符
getchar();
i++;
}
ch=fgetc(p);
}
fclose(p);
length = strlen(result);
for(i=0;i<length;i++){
if(result[i]==answer[i]||result[i]==answer[i]-32)
score+=10;
}
printf("\n最后的得分:%d\n\n按1查看标准答案\n",score);
}

为什么我调用这个函数后全选择正确答案老显示只得20分???
展开
 我来答
yi_yi901
2013-09-09 · TA获得超过230个赞
知道小有建树答主
回答量:286
采纳率:100%
帮助的人:189万
展开全部
#include <stdio.h>
#include <string.h>
#include <conio.h>
#define N 10 //试题中的题目数量
void hc();
int main(){
int i=0,score=0,length=0;
char answer[N];//存放用户的回答
char result[N+1]="CACBCACCCA";//存放正确的答案***********************************至少为11
FILE *p;
char ch;
char a=4;
p=fopen("D:\\test.txt","r");
ch=fgetc(p);
printf("%c以下是动漫知识选择题,每题只有一个正确答案,请认真作答%c\n(答对一题得10分,答错不得分)\n\n",a,a);
while(ch!=EOF){
if(ch!='*')
printf("%c",ch);
if(ch=='*') {
printf("\n输入选择的答案:");
answer[i]=getchar();//消耗回车字符
getchar();
i++;
}
ch=fgetc(p);
}
fclose(p);
length = strlen(result);
for(i=0;i<length;i++){
if(result[i]==answer[i]||result[i]==answer[i]-32)
score+=10;
}
printf("\n最后的得分:%d\n\n按1查看标准答案\n",score);
getch();
return 0;
}
//其他的再努力相信你慢慢会懂的
任明星Ming
2013-09-09 · TA获得超过798个赞
知道小有建树答主
回答量:1061
采纳率:100%
帮助的人:1180万
展开全部
你的length是10吗?如果循环10此累加10分的话,肯定是100分了。问题就出在你最后判定得分那里。
先检查你的length是不是10,然后看if条件是不是都符合加分条件了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式