一道c语言的练习题 100

共10道选择题,每题10分,正确答案依次为A,B,C,D,B,B,C,B,B,C。编写一个函数Judge()负责接收用户输入的答案,并与正确答案进行比较算分。程序最后给出... 共10道选择题,每题10分,正确答案依次为A,B,C,D,B,B,C,B,B,C 。编写一个函数Judge()负责接收用户输入的答案,并与正确答案进行比较算分。程序最后给出正确答案及用户的得分情况。
(要求用到字符数组的知识和for循环)
展开
 我来答
White_MouseYBZ
2019-06-27 · TA获得超过4万个赞
知道大有可为答主
回答量:2.1万
采纳率:82%
帮助的人:6418万
展开全部

#include "stdio.h"

int Judge(const char *a,const char *b){

int s,n;

for(s=n=0;n<10;s+=a[n]==b[n++]);

return s;

}

int main(int argc,char *argv[]){

const char std[]="ABCDBBCBBC";

char ans[10],i,t;

printf("Please enter your answer(orderly sequence of ABCD)...\n");

while(1){

if(scanf("%10s",ans)==1)

for(i=0;i<10;i++)

if(ans[i]!='A' && ans[i]!='B' && ans[i]!='C' && ans[i]!='D')

break;

if(i>=10)

break;

printf("Input error, redo:\nPlease enter your answer(orderly sequence of ABCD)...\n");

}

printf("\nCorrect answer:\n");

for(t=Judge(std,ans),i=0;i<10;i++)

if(std[i]==ans[i])

printf("%2d",i+1);

printf("\nTOTAL: %d\n",10*t);

return 0;

}

代码格式和运行样例图片:

更多追问追答
追问
老哥,你这个回答挺不错的,但是可以简短点、精简点吗?最后就只要输出正确答案和用户成绩就OK了。
稍后我会采纳的
o甩都不甩o
2019-06-27
知道答主
回答量:1
采纳率:0%
帮助的人:715
展开全部
public int Judge(char *input)
{
int i, sum;
char ans[11] = "ABCDBBCBBC";
for (i = 0, sum = 0, i < 10 && input[i] != '\0', i++)
{
if (input[i] == ans[i])
sum++;
}
return sum;
}
更多追问追答
追问
运行了嘛老哥?
能把完整的格式给我吗?我在电脑上运行一下,我好给你采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式