c语言的作业,要求能在vc上编译 面向小学1~2年级,随机选择两个整数和加减法形成算式要求学生解答

功能要求:
电脑随机出10道题,每题10分,程序结束时显示学生得分;
确保算式没有超出1~2年级的水平(即只允许进行50以内的加减法,不允许两数之和或之差超出0~50的范围,负数更是不允许的);
每道题学生有三次机会输入答案,当学生输入错误答案时,提醒学生重新输入,如果三次机会结束则输出正确答案;
对于每道题,学生第一次输入正确答案得10分,第二次输入正确答案得7分,第三次输入正确答案得5分,否则不得分;
总成绩90以上显示“SMART”,80-90显示“GOOD”,70-80显示“OK”,60-70显示“PASS”,60以下“TRY AGAIN”。

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int score=0;
int count=1;

void func()
{
int answer=1;
int a,b,c,opration,input;
while(1)
{
a=rand()%49+1;
b=rand()%49+1;
opration=rand()%2;  //0:+   1:-
if(opration==0)
{
if(a+b>50)
{
continue;
}
else
{
c=a+b;
break;
}
}
else
{
if(a-b<0)
{
int t=a;
a=b;
b=t;
}
c=a-b;
break;
}
}

while(answer<=3)
{
if(opration==0)
{
printf("\n第%d题: %d + %d = ",count,a,b);
}
else
{
printf("\n第%d题: %d - %d = ",count,a,b);
}
fflush(stdin);
scanf("%d",&input);
if(c==input)
{
switch(answer)
{
case 1:
score+=10;
break;
case 2:
score+=7;
break;
case 3:
score+=5;
break;
}
count++;
return;
}
else
{
if(answer==3)
{
printf("\n三次回答错误, 正确答案为: %d\n",c);
count++;
return; 
}
printf("\n错误, 请重新输入!\n");
answer++;
}
}
}

int main()
{
srand((unsigned)time(0));
int i;
for(i=0;i<10;i++)
{
func();
}
printf("\n\n你的成绩为: %d",score);
switch(score/10)
{
case 10:
case 9:
printf(" SMART");
break;
case 8:
printf(" GOOD");
break;
case 7:
printf(" OK");
break;
case 6:
printf(" PASS");
break;
default:
printf(" AGAIN");
break;
}
return 0;
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-02-22
也可能是,但也不完全是这一种原因,有可能还有其他方面影响到,比如家里事情比较多,朋友之间有烦心事,或者有什么工作压力等等,休息不好,或者身体缺少某种微量元素什么的,都可能影响到精神不集中。
第2个回答  2019-02-26
#include<stdio.h>
#include<time.h>

int main()
{
int c=10,score=0,scorearr[]={5,7,10};
int menu,left,num1,num2,result,answer;
char op;

srand(time(NULL));
for(;c>0;c--)
{
menu=rand()%2;
num1=rand()%51;
if(0==menu) //加法
{
op='+';
num2=rand()%(51-num1);
result=num1+num2;
}
else if(1==menu) //减法
{
op='-';
num2=rand()%(num1+1);
result=num1-num2;
}
for(left=3;left>0;left--)
{
printf("%d%c%d=",num1,op,num2);
scanf("%d",&answer);
if(result==answer)
{
score+=scorearr[left-1];
puts("正确");
break;
}
else
{
printf("错误!");
if(left>1)
puts("请重新输入");
else
printf("正确答案应该是:%d%c%d=%d\n",num1,op,num2,result);
}
}
}
printf("成绩:%d-",score);
if(score<60)
puts("TRY AGAIN");
else
{
switch(score/10)
{
case 9:
case 10:
puts("SMART");
break;
case 8:
puts("GOOD");
break;
case 7:
puts("OK");
break;
case 6:
puts("PASS");
break;
}
}
return 0;
}

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网