小学生算术运算考试系统(利用C语言编写) 请看清下面的要求 谢谢.........
发布网友
发布时间:2022-04-26 18:42
我来回答
共1个回答
热心网友
时间:2023-10-21 14:56
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
int cal(int, int, int);
void main(void)
{
int sel=3,sym=0,op1=0, op2=0, op3=0,op4=0;
int cnt=0,err=0;
srand((int)time(NULL));
do{
sym = rand()%4;
op1 = rand()%10;op2 = rand()%10;
op3 = rand()%100;op4 = rand()%100;
printf("--------------------\n");
printf("小学生算术考试系统\n");
printf("--------------------\n");
printf("1. 十以内的四则运算\n");
printf("2. 百以内的四则运算\n");
printf("3. 退出\n");
scanf_s("%d",&sel);
printf("%d\n",sel);
switch(sel){
case 1: err += cal(op1,op2,sym);break;
case 2: err += cal(op3,op4,sym);break;
case 3: break;
}
cnt++;
if(cnt==10){
printf("--------------------\n");
printf("10道题已经答完,成绩如下:\n");
printf("--------------------\n");
printf("总分:%d\n",100-10*err);
printf("答错题数:%d\n\n\n\n",err);
cnt = 0;
err = 0;
}
}
while(sel>0 && sel<3);
}
int cal(int op1, int op2, int sym)
{
int rst=0;int ans=0;
switch(sym){
case 0: printf("%d+%d=",op1,op2);scanf_s("%d",&rst);ans=op1+op2; break;
case 1: printf("%d-%d=",op1,op2);scanf_s("%d",&rst);ans=op1-op2; break;
case 2: printf("%d*%d=",op1,op2);scanf_s("%d",&rst);ans=op1*op2; break;
case 3: if(op2){
printf("%d/%d=",op1,op2);scanf_s("%d",&rst);ans=op1/op2;
}
else{
printf("%d/%d=",op1,op2+1);scanf_s("%d",&rst);ans=op1/(op2+1);
}
break;
}
if(ans==rst){
printf("\n正确!\n");
return 0;
}
else{
printf("\n错误!\n");
return 1;
}
}