自己写的一个练习程序
/* 程序进行到这里,还有个清除键盘缓存的问题,因为如果在输入运算符号的时候,如果输入的是字母,会接连运行几行程序,我记得论坛中有这样的程序代码,找找再说。
另外,除法运算到小数点后6位,有些太长,没想出什么好的办法来把它缩短到小数点后2位。希望哪位能指点一下,
谢谢! 还有随机数,只能随机抽取整数么?不可以抽取浮点数么?还希望哪位再指点指点,再次谢谢!*/
#include<stdio.h>
#include<time.h>
#include<stdlib.h>
/*------------------------------------------------------加法运算*/
float jia(float x,float y)
{
float m;
m=x+y;
return m;
}
/*----------------------------------------------------减法运算*/
float jian(float x,float y)
{
float m;
m=x-y;
return m;
}
/*-----------------------------------------------------乘法运算*/
float cheng(float x,float y)
{
float m;
m=x*y;
return m;
}
/*------------------------------------------------------除法运算*/
float chu(float x,float y)
{
float m;
m=x/y;
return m;
}
/*-----------------------------------------------------运算函数*/
float yunsuan(float x,float y,char m)
{
float z;
if(m=='+')
z=jia(x,y);
else if(m=='-')
z=jian(x,y);
else if(m=='*')
z=cheng(x,y);
else z=chu(x,y);
return z;
}
/*######################################################主函数*/
int main(void)
{
char a[7][200]={{"**********************************************************\n"},
{"您好,欢迎您来玩这个小游戏,它将会验证您的计算能力。 \n"},
{"请输入运算符:\n"},
{"请您输入您的结果:\n"},
{"您的运算正确!\n"},
{"太遗憾了,您错了。\n"},
{"请问您还继续吗?N退出,任意键继续:\n"} };
float x,y,z,z1;
char m;
do
{
printf("%s \n %s \n %s \n\n",a[0],a[1],a[0]);
do
{
printf("%s\n",a[2]);
scanf(" %c",&m);
if(m!='+'&&m!='-'&&m!='*'&&m!='/')
printf("您的运算符有误,请重新输入。\n");
}
while(m!='+'&&m!='-'&&m!='*'&&m!='/');
srand(time(NULL)); /*随机提取两个整数*/
x=rand()%5000+0;
srand(time(NULL)+100);
y=rand()%5000+0;
printf("%f %c %f = ",x,m,y);
scanf(" %f",&z);
puts(" ");
z1=yunsuan(x,y,m);
if(z1==z)
printf("%s\n",a[4]);
else printf("%s\n",a[5]);
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~退出或重来*/
printf("%s\n",a[6]);
scanf(" %c",&m);
}
while(m!='n'&&m!='N');
printf("谢谢您的参与,欢迎下次再来。\n");
getch();
}