C语言随机比大小循环,问一下,随机给数字、循环用多了会有什么后过?

#include

#include

#include

#include "keshe.h"      /*自定义库函数*/

#define random(x) rand()%x

#define N 10

#define H 100

int yi;

int er;

int op;

int temp;

int answer;

struct record    /*记录答题结果的结构体*/

{

float all;

float right;

float success_right;

float sucess_percent;

}rec={0,0,0,0.0};

struct mark    /*统计分数的结构体*/

{

int one;

int two;

int three;

int four;

int five;

int score;

}mar={0,0,0,0,0};

void welcome(void)    /*欢迎、提示界面*/

{

PR("*******************************************");

PR(DN);

PR("*    一     起    来     算     术        *");

PR(DN);

PR("*******************************************");

int test(int n)   /*给出题目的函数,其返回值为正确答案*/

{

int che;

srand((unsigned)time (NULL));

yi=random(n)+1;   /*给出一个1~n之间的随机数*/

er=random(n)+1;   /*再给出一个1~n之间的随机数*/

op=random(4)+1;   /*产生1~4之间的随机数来确定运算符号*/

switch (op)

{

case 1 :{answer=yi+er;PR(DD D1 DD D5 DN,yi,er);}break;

case 2 :{if (yi

{temp=yi;yi=er;er=temp;}

answer=yi-er;

PR(DD D2 DD D5 DN,yi,er);

}break;

case 3 :{che=random(10)+1;answer=yi*che;PR(DD D3 DD D5 DN,yi,che);}break;

case 4 :{/*if (yi

{temp=yi;yi=er;er=temp;}*/

while (yi%er!=0)

{

yi=random(n);

er=random(n);

}

answer=yi/er;

PR(DD D4 DD D5 DN,yi,er);

}break;

}

return answer;

}

void test_1(int n)   /*算术函数,完成题目的输出,答案的输入及对答题情况、分数的统计*/

{

int input, rig, pp, i=1, ss;

while (i)//&&input!=1111)

{

ss=1;

rig=test(n);

PR("请输入答案: ");

SR(DD,&input);

if (input==rig)

{

PR("太棒了!继续努力哦!\n");

rec.right++;   /*统计正确回答的个数*/

rec.success_right++;   /*统计一次回答正确的个数*/

mar.five++;

i=0;

}

else

{

pp=0;  /*记录分数用的计数器*/

while (ss)

{

PR("\n很遗憾,答错了,请再输入答案:\n");

SR(DD,&input);

if (input==rig)

{

PR("很好,回答正确!继续努力!\n");

ss=0;

rec.right++;  /*统计正确的个数*/

pp++;  /*自加完成分数的记录*/

i=0;

}

switch (pp)  /*记录到统计分数的结构体中*/

{

case 1 :mar.four++;break;

case 2 :mar.three++;break;

case 3 :mar.two++;break;

case 4 :mar.one++;break;

default:break;

}

}

}

i=0;

rec.all++;  /*统计题目的总数*/

}

}

void main ()

{

void welcome (void);

void test_1 (int);

int test (int n);

int i=1;

char ch;

welcome();

while (i<=3)

{

test_1(N);

i++;

}

rec.sucess_percent=rec.success_right/rec.all;

while (i<=10)

{

if (rec.sucess_percent>0.9)

test_1(H);

else

test_1(N);

rec.sucess_percent=rec.success_right/rec.all;

}

PR("题目总数   回答正确数   一次回答正确数   一次回答正确率\n");

PR("%5.0f %7.0f %15.0f %18c%.0f %10c%.0f",rec.all,rec.right,rec.success_right,'%',rec.sucess_percent*100);

mar.score=mar.five*5+mar.four*4+mar.three*3+mar.two*2+mar.one;

PR("\n您的分数为 %d: ",mar.score);

}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值