c语言 设计小学生四则运算测试程序,要求随机产生10题四则运算题,答完后给出得分

急啊,帮下忙拉

/*
* sizeyunsuan.c
*
* Created on: 2011-6-17
* Author: zhanglujin
*/

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int yunsuan(int M)
{
int m=1,n=0,a,b,daan;
while(1) //这里得解决/的情况,因为这里保证是整数,所以一些条件要满足才能除,若不成立,改为+得了。
{
srand(time(0));
a=rand()%M;
b=rand()%M;
switch(1+rand()%4)
{
case 1:
{
printf("<%d>",m);
printf("%4d+%4d=",a,b);
scanf("%d",&daan);
if(daan==(a+b))
n++;
else
printf("Fault!\n");
m++;
break;
}
case 2:
{
if(a>=b)
{
printf("<%d>",m);
printf("%4d-%4d=",a,b);
scanf("%d",&daan);
if(daan==(a-b))
n++;
else
printf("Fault!\n");
m++;
break;

}
else
{
printf("<%d>",m);
printf("%4d-%4d=",b,a);
scanf("%d",&daan);
if(daan==(b-a))
n++;
else
printf("Fault!\n");
m++;
break;

}
}
case 3:
{
printf("<%d>",m);
printf("%4d*%4d=",a,b);
scanf("%d",&daan);
if(daan==(a*b))
n++;
else
printf("Fault!\n");
m++;
break;
}
default:
{
if((b!=0)&&(a>=b)&&((a%b)==0))
{
printf("<%d>",m);
printf("%4d/%4d=",a,b);
scanf("%d",&daan);
if(daan==(a/b))
n++;
else
printf("Fault!\n");
m++;
break;
}
else if((a!=0) && (b>=a) && ((b%a)==0))
{
printf("<%d>",m);
printf("%4d/%4d=",b,a);
scanf("%d",&daan);
if(daan==(b/a))
n++;
else
printf("Fault!\n");
m++;
break;
}
else //若除不成立,改为+操作,防止循环多次。
{
printf("<%d>",m);
printf("%4d+%4d=",a,b);
scanf("%d",&daan);
if(daan==(a+b))
n++;
else
printf("Fault!\n");
m++;
break;
}
}
}
if(m == 11)
break;
}
return n;
}

int main()
{
int M,p;
float right;
char o;
while(1)
{
//redo:
printf(" 欢迎进入四则运算训练营\n\n1.10以内的四则运算\n2.20以内的四则运算\n0.退出\n\n");
printf("请选择功能号(1/2/0):");
scanf("%d",&p);
getchar();
if(p==1)
M=10;
if(p==2)
M=20;
if(p==0)
exit(0);
printf("您选择的是%d以内的四则运算\n",M);
int temp = yunsuan(M);
right= temp/10.0;
printf("正确率:%.2f%%",right*100);
printf(" score=%d",temp*10);
getchar(); //吸收前面的回车键。
printf("继续吗?(y/n)");
scanf("%c",&o);
if(o == 'y' || o == 'Y') //这里的继续存在问题啊,怎么弄??
{
system("pause");
//goto redo;
}
else
{
break;
}
}
getchar();
return 0;
}
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-12-16
#include<stdlib.h>
#include<stdio.h>
#include<conio.h>

void main()
{
int a[10],b[10],d[10],c[10],num=0,result,add=0;
float val;
char fa[5]={'+','-','*','/'};

srand((unsigned)time(NULL));
/* 出10道题 */
while(1)
{
d[num]=abs(rand())%4;/* 保证出题算法的随机性 */
while(1) /* 保证出题成功 */
{
c[num]=-1;
a[num]=abs(rand())%100;
b[num]=abs(rand())%100;
if(d[num]==0) c[num]=a[num]+b[num];
else if(d[num]==1) c[num]=a[num]-b[num];
else if(d[num]==2) c[num]=a[num]*b[num];
else if(d[num]==3)
{
if(b[num]>0)val=1.0*a[num]/b[num];
else val=-1;
}
if(d[num]<=2)
{
if(c[num]>=0 && c[num]<=100) /* 保证计算结果在0-100之间 */
break;
}
else
{
if(a[num]==int(val)*b[num] && val>=0)
{c[num]=val; break;}
}
}
num++;
if(num==10) break;
}
/* 回答 */
num=0;
while(1)
{
printf("%d %c %d= ",a[num],fa[d[num]],b[num]);
scanf("%d",&result);
if(result==c[num])
{
printf("回答正确!\n");
add+=10;
}
else
printf("错误,正确答案: %d\n",c[num]);
num++;
if(num==10) break;
}
printf("\n得分:%d\n",add);
getch();
}本回答被网友采纳

c语言 设计小学生四则运算测试程序,要求随机产生10题四则运算题,答完...
include <stdlib.h> include int yunsuan(int M){ int m=1,n=0,a,b,daan;while(1) \/\/这里得解决\/的情况,因为这里保证是整数,所以一些条件要满足才能除,若不成立,改为+得了。{ srand(time(0));a=rand()%M;b=rand()%M;switch(1+rand()%4){ case 1:{ printf("<%d>",m...

用c语言编写小学生四则运算!
a=10+rand()%89;return a;

...四则运算计算题,要求自动出0-10之间的四则运算题,并批改结果?_百度...
少年,写好了,给你参考一下。还可以更复杂。include <stdio.h> include <stdlib.h> include define N 10 int Test(){ int num = 0;int answer = 0;int result = 0;int m = 0;int n = 0;char op = 0;int count = N;while ( count-- ){ m = rand() % 10;n = rand()...

C语言编程一个四则运算练习系统;本系统要求能随机产生加,减,乘,除...
else main(); \/\/返回继续执行 }

用C语言编写小学运算测试程序(要求完成10以内的加减运算,能根据用户输 ...
printf(" 欢迎进入小学生四则运算训练营\\n\\n1.10以内的四则运算\\n0.退出\\n\\n");printf("请选择功能号(1\/0):");scanf("%d",&p);getchar();if(p==1)M=10;if(p==0)exit(0);printf("请选择的是%d以内的四则运算个数:\\n",M);scanf("%d",&num);int temp = yunsuan(M...

C语言课程设计 小学生四则运算练习系统 源程序
{ char data[maxsize]; \/*存放运算符*\/ int top; \/*栈指针*\/ }opr; \/*定义运算符栈*\/ char ch;int i=0,t=0; \/*t作为exp的下标,i作为str的下标*\/ opr.top=-1; \/*初始化设定top的值为负一*\/ ch=str[i];i++; \/*逐个读取字符串中的字符*\/ while (ch!='\\...

C语言 四则运算程序 高手帮帮忙!!!
case 2:printf("欢迎来到减法运算测试系统,如需退出请输入9999\\n");fuhao='-';break;case 3:printf("欢迎来到乘法运算测试系统,如需退出请输入9999\\n");fuhao='*';break;case 4:printf("欢迎来到除法运算测试系统,如需退出请输入9999\\n");fuhao='\/';break;case 5:printf("本次测试愉快,...

用简单的c语言编写四则运算题
printf("欢迎进入四则运算题,现在开始爆发你的小宇宙吧!\\n");srand((unsigned int)time(NULL));while(1){ printf("请选择运算类型:1.加法 2.减法 3.乘法 4.除法(保留两位小数)\\n");scanf("%d",&choice);printf("请选择位数:1.一位数 2.两位数\\n");scanf("%d",&data);swit...

大一c语言 小学生算数出题系统 的设计与实现?
一、设计的流程:1. 主界面设计,选择练习或测试,按ESC结束程序。 2. 题型选择界面设计,选择加、减、乘、除或混合运算,按ESC返回主界面。 3. 系统随机出题,运算数及结果均在100以内,乘、除法应能整除,显示算式。 4. 练习时,系统随机出题,键入结果,正确和错误均有提示,出错时允许再输入...

用C语言遍的“100以内的整数四则运算测试程序设计”
int i;long answer1[10],answer[10];float a[10]; char c[2],str[10];void anser(float a[],char str[],long answer[]);void show(long answer[]);void answer2(long answer1[]);int score(long answer[],long answer1[]);do { printf("1 : show question\\n");printf("2 : ...

相似回答