问题:写一个程序,能够随机出若干道其结果在100以内的四则运算题。
代码:
#include <stdio.h>
#include <stdlib.h>
#include<time.h>
int suan(int ,int ,int );
int pan(int ,int );
int main()
{
int n,i;//分别代表想循环的次数以及控制循环
int a,b,c,d;//分别代表两个运算数,正确的答案和学生给出的答案
int y;//运算符,1-加,2-减,3-乘,4-除
int t;//用来交换的中间量
int z=1;//控制是否继续做题
int x;//学生做对的题目数
int s;
while(z==1)
{
x=0;
printf("你想做多少道题?\n");
scanf("%d",&n);
srand(time(0));//随机数
for(i=0; i<n; i++)
{
printf("第%d题:\n",i+1);
y=rand()%4+1;
do
{
a=rand()%100+1;
b=rand()%100+1;//将运算数控制在100以内
if((b>a)&&(y==2||y==4))
{
t=a;
a=b;
b=t;
}
if(y==4)
a=(a/b)*b;
}
while((a+b>=100)||(a*b>=100)); //保证结果不会超过100
c=suan(a,b,y);
scanf("%d",&d);
s=pan(c,d);
if(s==1)
x++;
}
printf("您本次共答对%d道题,正确率是%c%.2f\n",x,'%',1.0*x/n*100);
printf("您还想继续答题吗?\n");
printf("1.在来几道试试\t2.不想学了要玩会\n");
scanf("%d",&z);
}
printf("再见!");
return 0;
}
/*************************************************************
功能描述:计算出正确的答案
输入参数:无
返 回 值:c-正确的答案
其他说明:无
/************************************************************/
int suan(int a,int b,int y)
{
int c;//代表正确的答案
if(y==1)
{
c=a+b;x=0;
printf("%d+%d=\n",a,b);
}
else if(y==2)
{
c=a-b;
printf("%d-%d=\n",a,b);
}
else if(y==3)
{
c=a*b;
printf("%d*%d=\n",a,b);
}
else
{
c=a/b;
printf("%d/%d=\n",a,b);
}
printf("请输入你的答案!\n");
return c;
}
/*******************x=0;******************************************
功能描述:判断是否答对题目
输入参数:无
返 回 值:c-正确的答案
其他说明:无
/************************************************************/
int pan(int c,int d)
{
int x=0;//控制最对的数目
if(c==d)
{
printf("正确,请保持!\n");
x=1;
}
else
{
printf("错误,别灰心!\n");
}
return x;
}
运行截图: