简单随机出题程序设计(新手报到)

本次代码主要是对于随机出题程序的一次尝试设计,运用了随机数简单题库建立,以及简单循环。


srand( ( int ) time ( 0 ) );   //时间做种子
    
    for( i=0; i<20; i++ )
    
    {
        
        r=rand( ) % 20;
    }

以上一段是对于随机取数的设计,第一行是利用时间作为随机种子取随机数,可以避免每次随机的数都一样的情况发生。其中用了简单的循环,循环二十次,也就是抽取二十道题。最后一段         r=rand( ) % 20;  是利用r作为数组中的数,如 a[ r ] ,取到相应题目。


 if ( f>='a' && f<='z' )

        {

            f=f-32;

        }

本段程序为选择题,为解决大小写问题,此段判断代码可有效解决大小写难以辨识问题,提高程序人性化程度。


需要注意的是,如果你的输入用的是scanf进行输入,那么请尽量使用%s作为输入格式,否则容易出现使用空格回车造成的程序混乱(用%c可验真伪)

scanf("%s",&f);

最后呢,其实也没什么太复杂的东西,而且作者也还有一块地方没解决——当输入“a a a”时会出问题...也希望有大佬对此程序予以点评,若有疏漏,还请雅正!

以下附上部分核心代码(其中j [ ] 为答案,timu [ ] [ ]为题目,都以数组形式写进程序


int i,r,t,l;

    int fen=0;

    int ti=0;
    
    int shu[100];

    char f;

    int y;

    t=1;

    printf("开始答题,这是选择题\n一题五分,总分100分\n\n");

    srand((int)time(0));

    for(i=0;i<20;i++,t++)

    {
 
       r=rand()%20;

        shu[i]=r;

        if(r!=shu[100])

            y=1;

        else

            y=0;

        if(y==1)

        printf("第%d题.%s\n请输入答案(回车进入下一题)___",t,timu[r]);


        scanf("%s",&f);


        {

        if(f>='a'&&f<='z')

        {

            f=f-32;


        }

        if(f==j[r])
 
        {
            printf("对了\n");

            fen=fen+5;

            ti=ti+1;
 
        }

            else{

            printf("错了,答案是 %c\n",j[r]);

            }

            printf("\n");

            getchar ();

    }

printf("结束了\n");


printf("答对了%d道 你的分数是%d",ti,fen);

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值