简单答题系统——填空题(随机抽题)

这是个关于随机抽题系统的初次尝试,以下是该系统运用的关键技术。

1.生成随机数并不重复(拿在0~20间的数随机抽取并不重复来举例)

srand((unsigned)time(NULL));//产生随机数种子
for(j=0;j<20;j++)
   {
       index[j]=rand()%20;//随机抽数
       for(i=1;i<j;i++)
       {
           if(index[i]==index[j])
           {
               j--;
               break;//如果两个随机数相等,跳出循环(消除重复)
           }
       }
   }

2.解决答案不一致的问题(如“1+1=”,答案可为2,two,Two皆对)

 if(c[x][0]==a[x][0]-32)//单词的首字母小写变大写
       {
           printf("恭喜正确\n");
           sum=sum+5;
       }

这一步直接有利于答题者作答,提高辨识度。

最后是注意点:题目的printf输出和答案的scanf输入应用%s来输出。

以下是核心代码:

for(i=1;i<=20;i++)
   {
       printf("第%d题 ",i);
       //int x=21;
       x=index[i];

       printf("%s",b[x]);
       scanf("%s",n);
       //if(i==1) getchar();
for(j=0;j<strlen(n);j++)
       {
           c[x][j]=n[j];
       }
       if(strcmp(n,s[x])==0||strcmp(n,a[x])==0){
           printf("恭喜正确\n");
           sum=sum+5;
       }

 if(c[x][0]==a[x][0]-32&&strlen[n]==strlen(a[x]))//单词的首字母小写变大写,并且保持输入的字母长度与答案字母长度一样
       {
           printf("恭喜正确\n");
           sum=sum+5;
       }
       else printf("回答错误了奥!正确答案是%s 或者 %s\n",a[x],s[x]);
       printf("\n");
       getchar();
   }
   printf("答题结束!");

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值