首页 > 技术文章 > 四则运算

ruishao13 2015-04-01 15:23 原文

#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]-48); 
else 
printf("您的输入有误,请重新输入");
} 
while(i<strlen(s)); 
return(z);
}
int x=1,y=1,choice=0,sum=0,right=0,z=0,answer;
float precent;
char fuhao;
void suiji()
{ 
srand(time(NULL)); 
x=rand()%100+1; 
y=rand()%100+1;
}void choose()
{ 
int yunsuan(int,int,int); 
if(sum==0) 
precent=0.0; 
else 
precent=(float)right/sum; 
printf("\n如需进行加减乘除运算测试,请分别输入1、2、3、4\n"); 
printf("如需退出请输入5\n"); choice=scan(); 
switch(choice) 
{ 
case 1:printf("欢迎来到加法运算测试系统,如需退出请输入00\n");
fuhao='+';break; 
case 2:printf("欢迎来到减法运算测试系统,如需退出请输入00\n");
fuhao='-';break; 
case 3:printf("欢迎来到乘法运算测试系统,如需退出请输入00\n");
fuhao='*';break; 
case 4:printf("欢迎来到除法运算测试系统,如需退出请输入00\n");
fuhao='/';break; case 5:printf("本次测试结束,欢迎下次再来测试\n"); 
printf("本次共做%d道题,其中%d道正确,正确率为%f\n",sum,right,precent); break; 
default:printf("您的输入有误,请重新输入\n");choose(); 
}
}
int ans(int x,int y,int choice)
{ 
switch(choice) 
{ 
case 1:z=x+y;break; 
case 2:z=x-y;break; 
case 3:z=x*y;break; 
case 4:z=x/y;break; 
} return(z);
}
void yunsuan()
{ 
suiji(); 
printf("%d%c%d=",x,fuhao,y); 
z=ans(x,y,choice); 
answer=scan(); 
if(z==answer) 
{ 
printf("正确\n"); 
right++;
sum++; 
yunsuan(); 
} else if(answer==00) 
choose(); 
else 
{ 
printf("不正确, 正确答案为%5d\n",z); 
sum++; 
yunsuan(); 
}
}
void main()
{ 
printf("欢迎来到四则运算测试系统\n"); 
choose(); 
while(choice!=5) 
yunsuan();
}

推荐阅读