C语言答题系统-----选择题(随机抽取)

关于C语言选择答题系统初次尝试,以下是我的代码部分展示.

1.关于选择题目的不重复选择 (在0~10个题目间随机抽取且不重复)

68| srand((unsigned)time(NULL));//产生随机数种子

 部分代码展示:


70 for(i=1;i<=10;i++)
71 		{
72			index[i] = rand() %10+1;//随机抽取题目,巧妙利用下标
73			for( j=1;j<i;j++)
74			{
75				
76				if(index[i]==index[j])//随机题目不重复
77				{
78					i--;
79					break;
80				}
81				
82			}
83		}

​

2.对于输入答案的评判 (程序对于答案大小写的区分以及部分不规则输入的评判)

例如:标准输入答案一般为A,小写a也被系统判断正确,考虑到有些用户会习惯性在题目出现多打空格如 “__A”或者“A__”这种情况程序也会判定正确,从而更凸显人性化.

代码展示:

96 if(res[0]==' ')
97			{
98				if(res[1]==a[d]||res[1]==a[d]+32)
99				{
100					printf("哔哔恭喜你答对了!不要骄傲哦!\n");
101					score++;
102					arr[score]=j;
103					
104				}
105				else printf("很遗憾,正确答案是%c,继续努力\n",a[d]);
106			}
107		else {
108			if(res[0]==a[d]||res[0]==a[d]+32)
109			{
110				printf("哔哔恭喜你答对了!不要骄傲哦!\n");
111				score++;
112				arr[score]=j;
113			}
114			else printf("很遗憾,正确答案是%c,继续努力\n",a[d]);
115		}
116	}

3.程序在用户答题后会记录用户所答对的题目在程序末尾展示,以便于用户更加便捷的发现自己的错误从而改正. (同时会在程序最后给与相应分数与正确率).

代码如下:

	if(score!=0)
		{
			printf("恁答对了:\n");
			for(i=0;i<score;i++)
			{
				printf("第%d题 ",arr[i+1]);
			}
			printf("\n");
		}
		else printf("恁运气这不好,咋一个都没说dei\n");

 4.核心代码展示.

for(i=1;i<=10;i++)
		{
			index[i] = rand() %10+1;
			for( j=1;j<i;j++)
			{
				
				if(index[i]==index[j])
				{
					i--;
					break;
				}
				
			}
		}
		int d=0;
		double x=0.0;
		char c1;
		for(j=1;j<=10;j++)
		{
			d=index[j];
			printf("第%d题: %s\n",j,qu[d]);
			printf("%s\n",op[d]);
			printf("请输入你的答案:");
			if(j==1) getchar();
			gets(res);
		//	scanf("%s",res);
			if(res[0]==' ')
			{
				if(res[1]==a[d]||res[1]==a[d]+32)
				{
					printf("哔哔恭喜你答对了!不要骄傲哦!\n");
					score++;
					arr[score]=j;
					
				}
				else printf("很遗憾,正确答案是%c,继续努力\n",a[d]);
			}
		else {
			if(res[0]==a[d]||res[0]==a[d]+32)
			{
				printf("哔哔恭喜你答对了!不要骄傲哦!\n");
				score++;
				arr[score]=j;
			}
			else printf("很遗憾,正确答案是%c,继续努力\n",a[d]);
		}
	}
		if(score!=0)
		{
			printf("恁答对了:\n");
			for(i=0;i<score;i++)
			{
				printf("第%d题 ",arr[i+1]);
			}
			printf("\n");
		}
		else printf("恁运气这不好,咋一个都没说dei\n");
		x=score*1.0/10;
		printf("你的最终成绩为%d\n正确率为%.2lf%%\n",score*5*2,x*100);
	}
	return 0;
}

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值