c语言 设计小学生四则运算测试程序,要求随机产生10题四则运算题,答完后给出得分
#include
#include
#include
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];
}
if(d[num]<=2)
{
if(c[num]>=0 && c[num]<=100) break;
}
else
{
if(a[num]==int(val)*b[num])
{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("回答正确!
");
add+=10;
}
else
printf("错误,正确答案: %d
",c[num]);
num++;
if(num==10) break;
}
printf("
得分:%d
",add);
getch();
}
3/2在C语言中是int/int,结果为int
所以3/2=1
要想结果为实际值
有两种:
第一种必须是已知的常数
#include int main(void){float result=3.0/2;/*float/int=float*/printf("%f",result);/*输出1.5*/return 0;}第二种
#include int main(void){int x=3,y=2;float result=(float)x/y;/*将x强制转换为浮点型*/printf("%f",result);/*输出1.5*/return 0;}
* 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;
}
#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();
}
薄霭阿法: /************************************ CopyRight Dragonpaopao************************************/#include <stdlib.h>#include <stdio.h>#include <time.h> int question_get(); int type; void main( void ) { int answer;srand( (unsigned)time( NULL ) ); printf( "...
万全县19693627849: 用C语言设计一个儿童四则运算程序,根据用户的设定自动出题并对全部回答进行判断,全部答完后统计正确率 - ?
薄霭阿法: /* Note:Your choice is C IDE */#include "stdio.h"#include"windows.h" int right=0,wrong=0; void add() { int a,b,c; a=rand()%100; b=rand()%100; printf("请回答:%d+%d=",a,b); scanf("%d",&c); if(a+b!=c){printf("回答错误\n");wrong++;...
万全县19693627849: C语言编程一个小学四则运算练习系统. - ?
薄霭阿法: #include <stdio.h> #include <stdlib.h> #include <time.h> #include <assert.h> int comp(int); int init(void); int main(int argc, char* argv[]) { int in; do { init(); scanf("%d",&in); assert(in>=0&&in<=4); system("cls"); if (in!=0) comp(in); } while (in!=0); ...
万全县19693627849: 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) //这里得解决/的情况,因为这里保证是整数,所以一些条件要满足才能除...
万全县19693627849: C语言编程小学生数学四则运算题 要求可以输入所出题目数 判断对错 记录分数 - ?
薄霭阿法: #include <stdio.h>#include <time.h> void main() { int num,mark=0,i; int num1,num2,sum,n; scanf("%d",&num); srand((unsigned) time(NULL)); for(i=0;i<num;i++) { num1=rand()%100; num2=rand()%100; n=rand()%4; switch(n) { case 0 : { printf("...
万全县19693627849: 用c语言写小学生四则运算系统的思路 - ?
薄霭阿法: #include #include int num=0,num1=0; int m[1000][100]; char oper[4]={'+','-','*','/'}; int main() { int a,b,c,d,e,flag,i,j; for(i=1;i
万全县19693627849: 用c语言编程简单的四则运算 - ?
薄霭阿法: 程序里面用随机数,产生两个自然数,然后根据你需要,如果需要加,就循环上面步骤25次,每次结果打印到文件.如果需要减,也循环25次,依此类推.
万全县19693627849: C语言 四则运算程序 高手帮帮忙!!!!?
薄霭阿法: #include<stdio.h> #include<stdlib.h> #include<time.h> #include<string.h> int scan() { char s[100]; int i,t,z=0; do { z=0; gets(s); for(i=0;s[i]!='\0';i++) if(s[i]<'0' || s[i]>'9') break; if(i>=strlen(s)) for(t=0;s[t]!='\0';t++) z=z*10+((int)s[t]-...
万全县19693627849: c语言 用两个函数编写一个程序来帮助小学生学习四则运算 - ?
薄霭阿法: <pre t="code" l="cpp">right_prompt() {int x; x = rand()%4+1;switch(x) {case 1:printf("Very Good!\n");break;case 2:printf("Excellent!\n");break;case 3:printf("Nice work!\n");break;case 4:printf("Keep up the good work!...
万全县19693627849: 一个C程序的编程问题 - ---测试小学生的四则运算 - ?
薄霭阿法: 刚开始错了 重新修改 经过调试 可行 #include<stdio.h> #include<stdlib.h> void main() { long a,b,d,s[5],sum; int num=0; char c; s[1]='+'; s[2]='-'; s[3]='*'; s[4]='/'; printf("Please input the first number:\n"); //输入a scanf("%d",&a); printf("Please ...