用简单的c语言编写四则运算题

由电脑生成简单的四则运算题,用户给出答案,计算机判断对错,知道用户回答说不再继续做了时结束程序
可以让用户选择指定出加减乘除哪一种运算,以及出一位数还是两位数的运算题
对用户所做算术题的对错次数进行记录,结束程序时给出成绩
最好把每句什么意思在后面解释一下
务必要用简单的C语言编写
我把我所有的财富值都给了,希望大神谅解,并用心完成,跪谢

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int add(int num1,int num2)//加法
{
return num1+num2;
}
int subtraction(int num1,int num2)//减法
{
return num1-num2;
}
int mul(int num1,int num2)//乘法
{
return num1*num2;
}
float divis(int num1,int num2)//除法
{
return ((int)(((float)num1/num2)*100+0.5))/100.0;
}
int main()
{
int type = -1;
int data = -1;
int choice,num1,num2,results;
float div_result;
int right = 0;
int wrong = 0;
char ch;
printf("欢迎进入四则运算题,现在开始爆发你的小宇宙吧!\n");
srand((unsigned int)time(NULL));
while(1)
{
printf("请选择运算类型:1.加法 2.减法 3.乘法 4.除法(保留两位小数)\n");
scanf("%d",&choice);
printf("请选择位数:1.一位数 2.两位数\n");
scanf("%d",&data);
switch (choice)
{
case 1:
if(data == 1)
{
num1 = rand()%10;
num2 = rand()%10;
printf("%d + %d=__?__\n",num1,num2);
scanf("%d",&results);
if(results == add(num1,num2))
{
printf("回答正确!\n");
right++;
}
else
{
printf("回答错误!\n");
wrong++;
}
printf("是否继续?y/n\n");
getchar();
scanf("%c",&ch);
if(ch == 'y')
break;
else if(ch == 'n')
goto end;
}
else if (data == 2)
{
num1 = rand()%100;
num2 = rand()%100;
printf("%d + %d=__?__\n",num1,num2);
scanf("%d",&results);
if(results == add(num1,num2))
{
printf("回答正确!\n");
right++;
}
else
{
printf("回答错误!\n");
wrong++;
}
printf("是否继续?y/n\n");
getchar();
scanf("%c",&ch);
if(ch == 'y')
break;
else if(ch == 'n')
goto end;
}
break;
case 2:
if(data == 1)
{
num1 = rand()%10;
num2 = rand()%10;
printf("%d - %d=__?__\n",num1,num2);
scanf("%d",&results);
if(results == subtraction(num1,num2))
{
printf("回答正确!\n");
right++;
}
else
{
printf("回答错误!\n");
wrong++;
}
printf("是否继续?y/n\n");
getchar();
scanf("%c",&ch);
if(ch == 'y')
break;
else if(ch == 'n')
goto end;
}
else if (data == 2)
{
num1 = rand()%100;
num2 = rand()%100;
printf("%d - %d=__?__\n",num1,num2);
scanf("%d",&results);
if(results == subtraction(num1,num2))
{
printf("回答正确!\n");
right++;
}
else
{
printf("回答错误!\n");
wrong++;
}
printf("是否继续?y/n\n");
getchar();
scanf("%c",&ch);
if(ch == 'y')
break;
else if(ch == 'n')
goto end;
}
break;
case 3:
if(data == 1)
{
num1 = rand()%10;
num2 = rand()%10;
printf("%d * %d=__?__\n",num1,num2);
scanf("%d",&results);
if(results == mul(num1,num2))
{
printf("回答正确!\n");
right++;
}
else
{
printf("回答错误!\n");
wrong++;
}
printf("是否继续?y/n\n");
getchar();
scanf("%c",&ch);
if(ch == 'y')
break;
else if(ch == 'n')
goto end;
}
else if (data == 2)
{
num1 = rand()%100;
num2 = rand()%100;
printf("%d * %d=__?__\n",num1,num2);
scanf("%d",&results);
if(results == mul(num1,num2))
{
printf("回答正确!\n");
right++;
}
else
{
printf("回答错误!\n");
wrong++;
}
printf("是否继续?y/n\n");
getchar();
scanf("%c",&ch);
if(ch == 'y')
break;
else if(ch == 'n')
goto end;
}
break;
case 4:
if(data == 1)
{
num1 = rand()%10;
num2 = rand()%10+1;
printf("%d / %d=__?__\n",num1,num2);
scanf("%f",&div_result);
if(div_result == divis(num1,num2))
{
printf("回答正确!\n");
right++;
}
else
{
printf("回答错误!\n");
wrong++;
}
printf("是否继续?y/n\n");
getchar();
scanf("%c",&ch);
if(ch == 'y')
break;
else if(ch == 'n')
goto end;
}
else if (data == 2)
{
num1 = rand()%100;
num2 = rand()%100+1;
printf("%d / %d=__?__\n",num1,num2);
scanf("%f",&div_result);
if(div_result == divis(num1,num2))
{
printf("回答正确!\n");
right++;
}
else
{
printf("回答错误!\n");
wrong++;
}
printf("是否继续?y/n\n");
getchar();
scanf("%c",&ch);
if(ch == 'y')
break;
else if(ch == 'n')
goto end;
}
break;
default :
printf("输入错误!\n");
break;
}
}
end:
printf("回答正确%d题,回答错误%d题\n",right,wrong);
printf("\n====================谢谢光临====================!\n");
system("pause");
return 0;
}
//注意除法是采用四舍五入的,有什么不明白的再问吧,望采纳!追问

您能不能把把每句什么意思在后面大概解释一下,麻烦了,三克油!

温馨提示:内容为网友见解,仅供参考
第1个回答  2013-12-09

  这个很简单啊。

  假设你已经输入写好了,然后制定的运算种类存在int op里面,int x表示数的位数

  那么

  if (x==1) {a=rand()%9+1;b=rand()%9+1;} else {a=rand()%90+10;b=rand()%90+10;} 随机生成两个数

  然后if (op==0) c=a+b;if (op==1) c=a-b;if (op==2) c=a*b;if (op==3) c=a/b;电脑计算出答案

  然后你把a,b运算符号都输出,然后读入用户的答案,判断是否和c一致就可以了。

  比如输入到d。假设规定用户输入-1表示结束。

  那么就if (d==-1) break。整个过程写在一个循环里面就行了。

  if (c==d) ct1++; else ct2++; 记录对错次数

  最后输出一下ct1和ct2就可以了。


  最后大致写下总的。

    ct1=ct2=0;
    while (1)
    {
        input(); // 你自己完成输入。
        if (x==1) {a=rand()%9+1;b=rand()%9+1;} else {a=rand()%90+10;b=rand()%90+10;}
        if (op==0) c=a+b;if (op==1) c=a-b;if (op==2) c=a*b;if (op==3) c=a/b;
        output(a,b,op); //你自己完成以下输出a,b和计算符号。以及提示语之类的
        readfromuser(d); //你自己看看怎么从用户这边读入,并且判断是否是退出之类的。
        if (isexit(d)) break; //如果你自己判断出来用户要退出就退出。
        if (c==d) ct1++;ct2++;
     }
     outputscore(ct1,ct2); //输出一下分数。
     
     
     输入输出函数我就不具体写了,你可能想完成的更美工一点之类的,但是大致流程就这样子。

本回答被网友采纳
第2个回答  2013-12-09
还有点小毛病,你自己修改吧

#include <stdio.h>

#include <time.h>
#include <math.h>

int a,b;
float ans;

int GetFigure(BYTE bit,int *a1,int *b1)
{
int i = 0,j,k,Num[2];
srand( (unsigned)time( NULL ) );
k = pow(10,bit-1);
while(i<2)
{
j = rand();
j = j % (k * 10);
if(j-k>=0)
{
Num[i] = j;
i++;
}

}
*a1 = Num[0];
*b1 = Num[1];
return j;
}

void Func(BYTE n,BYTE bit)
{

GetFigure(bit,&a,&b);
switch(n)
{
case '+':
ans = a + b;
break;
case '-':
ans = a - b;
break;
case '*':
ans = a * b;
break;
case '/':
ans = (float)a / (float)b;
break;
default:
return;
}
}

void main()
{

BYTE n,bit;
float an;
printf("要做那则运算?");
scanf("%c",&n);
system("cls");
printf("要做几位数的四则运算?\n");
scanf("%d",&bit);
while(1)
{
Func(n,bit);
printf("\n\n%d %C %d = ?\n\n",a,bit,b);
scanf("%f",&an);
if(ans==an)
{
printf("回答正确!\n\n");
}
else
{
if(n=='/')
{
printf("回答错误! 答案是:%f\n\n",ans);
}
else
{
printf("回答错误! 答案是:%.1f\n\n",ans);
}
}
}
}

如何用C语言实现四则运算?
1.定义头文件#include "stdafx.h"、#include <stdio.h>和#include <math.h>。2.写出主函数void main(){},在函数内添加如下代码:\/\/定义变量 int minusNumber=-10; int plusNumber=0; \/\/转换成正数 plusNumber=abs(minusNumber); \/\/输出结果 printf("转换前:%d\\n",minusNumber); printf(...

c语言则么怎么实现四则运算
char d;printf("输入简单的四则运算表达式:\\n");scanf("%f%c%f",&a,&d,&b);switch(d){ case'+': c=a+b;break;case'-': c=a-b;break;case'x':case'*': c=a*b;break;case'\/': if(b>0) c=a\/b;break;default:break;} printf("%g%c%g=%g\\n",a,d,b,c);getchar()...

c语言写四则运算...输入一个等式。。。再输入结果。。。判断正误...
printf("输入计算结果:\\n");scanf("%d",&result);switch(d){ case'+': c=a+b;break;case'-': c=a-b;break;case'*': c=a*b;break;case'\/': if(b>0) c=a\/b;break;} if(result==c)printf("回答正确!\\n");else printf("错误,正确答案是:%d\\n",c);printf("继续(y) 退...

c语言怎么用switch语句编写四则运算?
void main(){ double N1,N2;char Operation;printf("输入运算的两个数");scanf("%lf%lf",&N1,N2);printf("请输入运算符(+,-,*,\/):");switch(Operation){ case '+':printf("%lf%c%lf=%lf",N1,N2,Operation,N1+N2);break;case '-':printf("%lf%c%lf=%lf",N1,N2,Operatio...

用简单的C语言实现带括号的四则运算
double convnum(char *c)输入参数:char *c :由数字和小数点组成的字符,用以转换成double型的数值。返回参数:num:返回转换好的值。功能:将输入的字符串先将其小数点以前的部分复制到temp[]数组中,若有小数点,则将小数点之后的数值,也就是小数部分先进行计算,值存入num中 计算完成后,再对...

四则运算用c语言怎么搞
int b[50]={0},count;char c[50],t;int i=0,j=0;char *d;c[0]='\\0';while(*a!='\\0'||c[j]!='\\0'){ count=0;if(*a<='9'&&*a>='0'){ d=a;while(*d<='9'&&*d>='0'){ d++;count++;} while(count>0){ b[i]+=(int)((*a-'0')*pow(10,count-1)...

c语言四则运算程序怎么写
c语言四则运算程序写法如下:四则运算是数学忠最基杰的运算之-信息括加减乘除四种运算。在计算机编程中四则运算也是最基本的运算之一,常用于算法设计、数据处理等方面。本文将介绍如何使用C语言进行四则运算的编程。加法运算 加法运算是最简单的四则运算之一,其基本形式为atb,其中a和b为加数,+为加号,...

用C语言编程实现一个简单的四则运算计算器
\/\/函数,读数操作数 int getNextNum(){ int ret;scanf("%d",&ret);return ret;} \/\/函数,读运算符 char getOpt(){ return getchar();} \/\/函数,计算 int caculate(int op1 , int op2 ,char opt){ if(opt=='+')return op1+op2;if(opt=='-')return op1-op2;if(opt=='*')...

用C语言编写小学生四则运算系统
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<=1000;++i) for(j=1;j<=i;++j) if(i%j==0) m[i][m[i][0]++]=j; srand(time(0)); while(1) { system("cls"); printf(...

C语言怎么实现任意两个数的四则运算
char c;printf("请输入两个数:");scanf("%d %d", &a, &b);getchar();printf("请输入你需要的运算法则:");scanf("%c",&c);switch (c){ case '+':printf("%d+%d = %d", a, b, a+b);break;case '-':printf("%d-%d = %d", a, b, a-b);break;case '*':printf("...

相似回答