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

作者&投稿:德矿 (若有异议请与网页底部的电邮联系)
c语言编写四则运算法则的程序~

楼主问用C语言编写,1楼的用C++怎么编写啊

我的C语言代码如下:


#include
#include
#include
#include
#include


void main()
{ int s,d=0;
int a,b,c,z,v,m;
char ch[4]={'+','-','x','/'};
srand((unsigned)time(NULL));
m=100;
b=rand()%m;
printf("%d ",b);
z=b;
for(s=0;s<3;s++)
{a=rand()%4;b=rand()%m; printf("%c %d ",ch[a],b); if (a==0) {v=z+b;z=b;}
if (a==1) {v=z-b;z=b;}
if (a==2) {v=z*b;z=b;}
if (a==3) {v=z/b;z=b;}
}
printf("= ");
loop: scanf("%d",&c);
fflush(stdin);
if (c==v) {printf("OK!");goto end;}
while (c!=v && d++!=2)
{printf("it does not matter and try it again: "); goto loop; }

printf("the result is : %d",v);

end:getch();
}

switch 是一个开关语句,和case配套使用, 和if else 判断语句差不多, switch 语句是用于多分支语句进行条件判断。下例为用switch语句编写的四则运算:

#include
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,Operation,N1-N2);
break;
case '*':printf("%lf%c%lf=%lf",N1,N2,Operation,N1*N2);
break;
case '/':printf("%lf%c%lf=%lf",N1,N2,Operation,N1/N2);
break;
}
}

#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;
}
//注意除法是采用四舍五入的,有什么不明白的再问吧,望采纳!

  这个很简单啊。

  假设你已经输入写好了,然后制定的运算种类存在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); //输出一下分数。
     
     
     输入输出函数我就不具体写了,你可能想完成的更美工一点之类的,但是大致流程就这样子。


还有点小毛病,你自己修改吧

#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语言实现带括号的四则运算
include<stdio.h> \/*库文件包含*\/ include<string.h> \/*用于字符串操作*\/ include<stdlib.h> \/*用于exit函数*\/ \/ int check(char *c)输入参数:char *c: 输入的字符串 返回参数:0:字符串中有不符合规定的字符 1: 字符串字符符合规定,没有不符合规定的字符.功能:检查字符串中有否除了 ...

C语言简单程序:输入四个数,按从小到大顺序输出
你好,你的代码有两处错误:首先定义数组时长度过小,你要对4个数排序所以数组的长度至少要为4。其次你对四个整数排序的算法错误,建议用冒泡法进行排序。下面是我在你的代码基础上改进过后的代码,在改动处我已作了注释,希望对你有帮助!include"stdio.h"void main(){int a[4],i,j,t; \/\/...

简单的C语言编程
第一题:int Max(int x,int y,int z) \/\/求最大值 { if(x>=y){ if(x>=z)return x;else return z;} else { if(y>=z)return y;else return z;} } int Min(int x,int y,int z) \/\/求最小值 { if(x<=y){ if(x<=z)return x;else return z;} else { if(y<=z...

用C语言编程实现一个简单的四则运算计算器
include <stdio.h> \/\/函数,读数操作数 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;...

c语言,简单程序编程写
include <stdio.h>main(){int i=0,j;char a[200];printf("程序功能:电报译码。将字母译成其后的第四个字母,如A变成E,z变成d。其他字符不变。\\n");printf("请输入:\\n");while((a[i]=getchar())!='\\n')i++;j=i;printf("\\n译码后为:\\n");for(i=0;i<j;i++){if((a...

c语言(用最简单的,初学)从键盘输入四个整数,求平均值.数据输入,计算结果...
float average;\/\/定义一个浮点型的平均数,即小数 scanf("%d%d%d",&a,&b,&c,&d);\/\/输入函数 sum = a + b + c + d;\/\/求和 average = sum \/4 +sum %4;\/\/计算平均数,前面为整数部分后面为小数部分 printf("%f\\n",average);\/\/打印结果 return 0;\/\/结束返回 } ...

用C语言编写程序,从键盘输入四个数,求其最大值
代码如下:include <stdio.h> void main(){ float a,b,c,d,max;printf("请输入四位数字:\\n");scanf("%f%f%f",&a,&b,&c,&d);max=a;if(max<b)max=b;if(max<c)max=c;if(max<d)max=d;printf("最大的数值为:%f\\n",max);} 不知道帮没帮到你的忙 呵呵 望采纳 ...

求最简单的C语言程序
C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,...

用简单的C语言实现带括号的四则运算
只是吐槽,不负法律责任。对于四则运算的处理应该属于 AST算法 的一个分支,如果不构建词法分析树的话,就难以对给定串(不一定是简单的四则运算)进行优先级处理。然而居然能够说出“不用堆栈”之类的话,看样子楼主是基本不会什么数据结构了,即使这样,还奢望能够写出四则运算处理。。然而语言略微有些...

c语言编写 编写一个简单的计算器,实现两个整型数的四则运算。
将c定义为选择计算方式的变量。用switch语句,将c作为选择变量,填写计算方式的选项,最后在主函数中输入一个输出函数来输出计算式及结果即可完成程序的编写:3、运行编译查询,输入一个除法的计算验证一下,发现程序输出了小数,说明程序运行正常。以上就是用C语言编写计算器的流程:...

秀英区17570251680: 用c语言编程简单的四则运算 -
赖侍洛伐: 程序里面用随机数,产生两个自然数,然后根据你需要,如果需要加,就循环上面步骤25次,每次结果打印到文件.如果需要减,也循环25次,依此类推.

秀英区17570251680: 用c语言做一个简单的计算器.要求能做四则运算就够了,越简单越好.刚学了半年的C语言 -
赖侍洛伐: #include"stdio.h" void main() { float a,b;char c,x;while(1){printf("输入表达式: a+(-,*,/)b\n");scanf("%f%c%f",&a,&c,&b);switch(c)//选择分支,C传进来{case '+': printf('=',a+b);break;//c等于 +case '-': printf('=',a-b);break;//c等于 -...

秀英区17570251680: 谁能帮我用C语言编写一个四则运算,越简单越好呀!最好有中文解释的,初学者呀!急!!!! -
赖侍洛伐: 用纯粹的c语言实现,代码如下:#include int main() { double a,b; scanf("%lf%lf", &a, &b); printf("a+b=%lf, a-b=%lf, a*b=%lf", a+b, a-b, a*b); if(b==0) printf(", error!\n"); else printf(", a/b=%lf\n", a/b); return 0; }

秀英区17570251680: 四则运算 c语言编程 -
赖侍洛伐: #include "stdio.h" #include "stdlib.h" #include "ctype.h" int n=0; char record[20]; float product(); float change(); float muli() { float summ; summ=product(); while(record[n]=='-'||record[n]=='+') { switch(record[n]) { case '+':n++;summ+=product();...

秀英区17570251680: C语言,编写一个算术四则运算的程序 -
赖侍洛伐: 主要是你的scanf输入有问题,你可以打印一下输入的x,y值看是否正确, 将scanf("%f,%f,%c",&x,&y,&z);改成scanf("%lf,%lf,%c",&x,&y,&z);double类型应该为lf%

秀英区17570251680: 求c语言编写四则运算程序 -
赖侍洛伐: #include"stdafx.h" #include #include #includechar token;/*global token variable*/ /*function prototypes for recursive calls*/ float exp(void); float term(void); float factor(void);void error(void) { fprintf(stderr,"Error\n"); exit(1); }void ...

秀英区17570251680: c语言四则运算!简单!!!来帮忙啊!!!急!!! -
赖侍洛伐: #include <stdio.h> int main() { int choice = 0; int firstNum; int secondNum; printf("[1] Add\n"); printf("[2] Subtract\n"); printf("[3] Multiply\n"); printf("[4] Divide\n"); printf("Enter your choice : "); scanf("%d", &choice); printf("first num: ");...

秀英区17570251680: c语言“四则运算”
赖侍洛伐: #include<stdlib.h> #include<stdio.h> #include<time.h> #include <math.h> #include <conio.h> void main() { int s,d=0; int a,b,c,z,v,m; char ch[4]={'+','-','x','/'}; srand((unsigned)time(NULL)); m=100; b=rand()%m; printf("%d ",b); z=b; for(s=0;s<3;s++) {...

秀英区17570251680: 用C语言编程实现一个简单的四则运算计算器 -
赖侍洛伐: 用一个数组a作为存储数字的栈,另一个b作为存储操作符的栈,弹出一个操作符即弹出对应的两个数字进行运算,然后将运算结果压回a,直到a中只有一个元素,这个元素即为最后的结果.

秀英区17570251680: C语言编写四则运算 -
赖侍洛伐: \\分得给! #include <stdio.h> #include <stdlib.h> #include <time.h> void main(){int a,b,i,c,d,e,f,g=0;FILE *out;out=fopen("error_record.txt","w");srand((unsigned)time(NULL)); ov:printf("抽取题目总数:");scanf("%d",&d);if(d<1)...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网