用c语言设计一个四则运算的程序,求改
编写小学生数学测试软件,要求:
(1) 可选择题型(+,-,*,/);
(2) 可选择每次答题的个数;
(3) 随机生成两个10以内的数进行运算;
(4) 每次在输入答案后应判断对错,若答案错误,应
给出正确答案;
(5) 最后给出做对题目的总个数和总得分;
(6) 测试完一次,根据测试者的意图,可以重新测试。重新测试时可以重新选择题型和新的答题个数。
我自己胡乱的做了,结果运行不了,求大侠指点。谢谢
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<time.h>
#include<windows.h>
//system("pause");//
// system("cls");//
void jiafa()
{
int i,j,m;
srand(time(NULL));
i=rand()%100;
j=rand()%100;
printf("%d+%d=",i,j);
scanf("%d",&m);
if(i+j==m)printf("回答正确");
else printf("回答错误\n%d+%d=%d\n",i,j,i+j);
}
void jianfa()
{
int i,j,n;
i=rand()%100;
j=rand()%100;
printf("%d-%d=",i,j);
scanf("%d",&n);
if(i-j==n)
printf("回答正确");
else
printf("回答错误\n%d-%d=%d\n",i,j,i-j);
}
void chengfa()
{
int i,j,o;
i=rand()%100;
j=rand()%100;
printf("%d*%d=",i,j);
scanf("%d",&o);
if(i*j==o)
printf("回答正确");
else
printf("回答错误\n%d*%d=%d\n",i,j,i*j);
}
void chufa()
{
int i,j,p;
i=rand()%100;
j=rand()%100;
printf("%d/%d=",i,j);
scanf("%d",&p);
if(i/j==p)
printf("回答正确");
else printf("回答错误\n%d/%d=%d\n",i,j,i/j);
}
void main()
{
int x, shuru=0;
system("color 19");
printf(" 欢迎参加小学生数学四项法则测试\n");
system("pause");
system("cls");
while (1)
{
printf("你需要做什么题型计算?请选择:+(输入1) - (输入2) *(输入3) /(输入4)\n");
if(shuru==0)
scanf("c%",&x);
switch(x)
{
case '1': jiafa();break;
case '2': jianfa();break;
case '3': chengfa();break;
case '4': chufa();break;
default : printf("输入错误,请重新输入");
}
printf("请输入数字选择:\n1.继续\n2.重新选择题型\n3.结束\n");
scanf("%d",&shuru);
if(shuru==1) shuru=1;
if(shuru==2) shuru=0;
if(shuru==3) break;
}
}
追问:太感谢了,不过回答完第一次,重新选择题型时就会出错··
答案:#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<time.h>
/*#include"windows.h"*/
/*system("pause");*/
/* system("cls");*/
void jiafa()
{
int i,j,m;
srand(time(NULL));
i=rand()%100;
j=rand()%100;
printf("%d+%d=",i,j);
scanf("%d",&m);
if(i+j==m)printf("very good");
else printf("error\n%d+%d=%d\n",i,j,i+j);
}
void jianfa()
{
int i,j,n;
i=rand()%100;
j=rand()%100;
printf("%d-%d=",i,j);
scanf("%d",&n);
if(i-j==n)
printf("very good");
else
printf("error\n%d-%d=%d\n",i,j,i-j);
}
void chengfa()
{
int i,j,o;
i=rand()%100;
j=rand()%100;
printf("%d*%d=",i,j);
scanf("%d",&o);
if(i*j==o)
printf("ok");
else
printf("error\n%d*%d=%d\n",i,j,i*j);
}
void chufa()
{
float i,j,p;
i=rand()%100;
j=rand()%100;
printf("%f/%f=",i,j);
scanf("%f",&p);
if(i/j==p)
printf("very good");
else printf("error\n%f/%f=%f\n",i,j,i/j);
}
void main()
{
char x, shuru=0;
system("color 19");
printf(" \n");
system("pause");
system("cls");
while (shuru!=3)
{
printf("please choose?+(1) - (2) *(3) /(4)\n");
if(shuru==0)
scanf("%c",&x);
switch(x)
{
case '1': jiafa();break;
case '2': jianfa();break;
case '3': chengfa();break;
case '4': chufa();break;
default : printf("error");
}
}
printf("please inpuplease choose?+(1) - (2) *(3) /(4)\n");
scanf("%d",&shuru);
}
我在你的基础上改的,因为我的编译环境不能运行中文,所以都改为英文了,有问题可以继续说啊
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<time.h>
#include<windows.h>
//system("pause");//
// system("cls");//
void jiafa()
{
int i,j,m;
srand(time(NULL));
i=rand()%100;
j=rand()%100;
printf("%d+%d=",i,j);
scanf("%d",&m);
if(i+j==m)printf("回答正确");
else printf("回答错误\n%d+%d=%d\n",i,j,i+j);
}
void jianfa()
{
int i,j,n;
i=rand()%100;
j=rand()%100;
printf("%d-%d=",i,j);
scanf("%d",&n);
if(i-j==n)
printf("回答正确");
else
printf("回答错误\n%d-%d=%d\n",i,j,i-j);
}
void chengfa()
{
int i,j,o;
i=rand()%100;
j=rand()%100;
printf("%d*%d=",i,j);
scanf("%d",&o);
if(i*j==o)
printf("回答正确");
else
printf("回答错误\n%d*%d=%d\n",i,j,i*j);
}
void chufa()
{
int i,j,p;
i=rand()%100;
j=rand()%100;
printf("%d/%d=",i,j);
scanf("%d",&p);
if(i/j==p)
printf("回答正确");
else printf("回答错误\n%d/%d=%d\n",i,j,i/j);
}
void main()
{
int shuru=0;
char x;
system("color 19");
printf(" 欢迎参加小学生数学四项法则测试\n");
system("pause");
system("cls");
while (1)
{
printf("你需要做什么题型计算?请选择:+(输入1) - (输入2) *(输入3) /(输入4)\n");
if(shuru==0)
scanf("%c",&x);//错写c%
switch(x)
{
case '1': jiafa();break;
case '2': jianfa();break;
case '3': chengfa();break;
case '4': chufa();break;
default : printf("输入错误,请重新输入");
}
printf("请输入数字选择:\n1.继续\n2.重新选择题型\n3.结束\n");
scanf("%d",&shuru);
if(shuru==1) shuru=1;
if(shuru==2) shuru=0;
if(shuru==3) break;
}
}
scanf("%d",&p);
每个子函数里的好像都多了这些。
上一个:java中的方法与C语言中的函数有什么区别
下一个:请问C语言中的预处理命令ifdef是什么意思