c语言实现简单的加减乘除
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c语言实现简单的加减乘除相关的知识,希望对你有一定的参考价值。
#include <stdio.h>
#include <math.h>
void main()
float a,b;
char c;
printf("\n input a:");
scanf("%f",&a);
printf("\n input b:");
scanf("%f",&b);
printf("\n input c:");
scanf("%c",&c);
printf("\n%c",c);
switch(c)
case '+': printf("a+b=%f",a+b);
case '-': printf("a-b=%f",a-b);
case '*': printf("a*b=%f",a*b);
case '/': printf("a/b=%f",a/b);
default: break;
程序出错在哪里?重谢
1、打开C-Free5.0新建一个空白页面,然后将C语言的基础格式写完,注意格式缩进。如下图所示。
2、然后输入“ int a=10; float b=5,c; ”注意: float 是浮点型,int 是整型。这个是用来定义C语言中的数值的类型,还有如果一个语句结束那就要打上“;”,这个很重要,不要忘记了。上面的语句是定义了一个a 的整型数,值为10。
3、c定义的一个空白的浮点数,用来当作后面的加减后取得值。注意这里有几个注意点,可以看到一个整型的数和一个浮点数的加减乘除得到的数值都是浮点数,所以这里用%f输出c的值。
4、继续将剩下的语言补充完整如下:#include <stdio.h>main() int a=10; float b=5,c,d,e,f; c=a-b; d=a+b; e=a*b; f=a/b; printf("a-b=%f\\n",c); printf("a+b=%f\\n",d); printf("a*b=%f\\n",e); printf("a/b=%f\\n",f);。
5、这样一个简单的C语言的加减乘除算是写好了,运行看看。
参考技术A 按照你的程序运行后。。。在输入c值的时候程序直接结束了。。。还有就是每个case语句后记着加上break跳出不过也有不过根据具体需要也可以不加break;但是你的这个程序需要加上break;
原因是:回车符也是字符,所以你按回后,程序以为是输入了c的值了,而在输入b值成功是因为
回车符不是数字形式的。
以下是我改过的程序,编译运行都很好的
#include <stdio.h>
#include <math.h>
void main()
float a,b;
char c;
printf("\n input a:");
scanf("%f",&a);
printf("\n input b:");
scanf("%f",&b);
//这种情况经常遇到。。。。输入完后回车被下一个scanf("%c",&c)捕获了。
//因为回车符也是字符,所以你按回车后,程序以为是输入了c的值了
//所以加上下面一行,把回车符取走就可以了。。。。
getchar();
printf("\n input c:");
scanf("%c",&c);
//printf("\n%c",c);
switch(c)
case '+': printf("a+b=%f",a+b);break;
case '-': printf("a-b=%f",a-b);break;
case '*': printf("a*b=%f",a*b);break;
case '/': printf("a/b=%f",a/b);break;
default: break;
//为了好看
printf("\n");
本回答被提问者采纳 参考技术B 以下是修改后的程序:
#include <conio.h> /* 此头函数请不要删除 */
#include <stdio.h>
#include <math.h>
void main()
float a,b;
char c;
/*printf("input expression: a+(-,*,/)b \n");
scanf("%f %c %f",&a,&c,&b);*/
printf("input a:");
scanf("\n %f",&a);
printf("input b:");
scanf("\n %f",&b);
printf("input c:");
scanf("\n %c",&c);
switch(c)
case '+': printf("a+b=%f",a+b);break;
case '-': printf("a-b=%f",a-b);break;
case '*': printf("a*b=%f",a*b);break;
case '/': printf("a/b=%f",a/b);break;
default: printf("input error\n");
getch(); /* 此语句请不要删除*/
参考技术C 原因是因为你输入完'b'之后,按回车,编译器会把回车键当做是'c'说输入的内容,所以会出错。
我改了一下,你可以看到可以输入并算出结果,但输入有点难看,如(2 1+),'1'和'+'之间不要加任何东西。你可以自己再想想怎么改吧,考试中。
程序如下:
#include <stdio.h>
#include <math.h>
void main()
float a,b;
char c;
printf("\n 请输入两个整数,一个运算符: ");
scanf("%f",&a);
scanf("%f",&b);
scanf("%c",&c);
switch(c)
case '+': printf("\na+b=%f\n",a+b);break;
case '-': printf("\na-b=%f\n",a-b);break;
case '*': printf("\na*b=%f\n",a*b);break;
case '/': printf("\na/b=%f\n",a/b);break;
default: break;
参考技术D #include <stdio.h>
#include <math.h>
#include <iostream.h>
void main()
float a,b;
char c,k;
printf("\n input a:");
scanf("%f",&a);
printf("\n input b:");
scanf("%f",&b);
printf("\n input c:");
cin>>c;
k=c;
printf("\n%c",c);
switch(k)
case '+': cout<<a+b<<endl;break;
case '-': cout<<a-b<<endl;break;
case '*': cout<<a*b<<endl;break;
case '/': cout<<a/b<<endl;break;
default: break;
这个是对的,试试。
c语言实现用户指令实现 用户输入字符串 然后根据要求执行 怎么做呢
比如用户输入print“hello world”,就输出hello world
比如先赋值i=0 用户输入print i,就输出0,用户输入i=1,电脑识别出等于号,就输出1
比如用户输入i=i+1,电脑识别出等于号和加号,就输出2
然后加减乘除一样 主要是字符串的识别,只识别这几种就可以 跪求代码解答
以下代码可以做你要的加减乘除运算,变量名可以任意输入,可以有N个变量名,运算符和变量之间还可以空格,比如 :
i=1
j = i
print j
abc=22
j=i * abc
print j
print "helloworld"
#include <stdio.h>#include <stdlib.h>
#include <string.h>
#include <vector>
using namespace std;
typedef struct
int var;
char varname[128];
Variable;
std::vector<Variable> Var;
//判断变量还是数值
int isVarName(char *p)
if(p[0]<'0'||p[0]>'9') return 1;
return 0;
//去掉前后空格
char *FilterSpace(char *p)
int i;
while(*p==' ') p++;//跳过前面的空格
i=strlen(p);
while(i&&p[i-1]==' ') p[i-1]=0; i--;//去掉后面的空格
return p;
//取变量int值
int getInt(char *p)
p=FilterSpace(p);
if(isVarName(p))
for(int i=0;i<Var.size();i++)
if(!strcmp(p,Var[i].varname))
return Var[i].var;
else
return atol(p);
return 0;
//显示
void print(char *p)
char *t;
p=FilterSpace(p);
if(p[0]!='"')
printf("%d\\n",getInt(p));
return;
t=strstr(p+1,"\\"");
if(!t)
printf("error!");
return;
*t=0;
printf(p+1);
printf("\\n");
//运算操作
void Operation(char *p)
int n1,n2;
char *t;
Variable *v;
t=strstr(p,"=");
if(t)
v=NULL;
*t=0;
p=FilterSpace(p);
if(!isVarName(p))
printf("不能赋值给数值\\n");
return;
for(int i=0;i<Var.size();i++)
if(!strcmp(p,Var[i].varname))
v=&Var[i];
break;
if(!v)
Variable newV;
if(strlen(p)>sizeof(newV.varname))
printf("变量名不能大于%d个字符\\n",sizeof(newV.varname));
return;
newV.var=0;
strcpy(newV.varname,p);
Var.push_back(newV);
v=&Var[Var.size()-1];
p=t+1;
t=strstr(p,"+");
if(t)
//加法运算
*t=0;
n1=getInt(p);
n2=getInt(t+1);
v->var=n1+n2;
//printf("%s=%d\\n",v->varname,v->var);//若要立即显示结果就加上本行
return;
t=strstr(p,"-");
if(t)
//减法运算
*t=0;
n1=getInt(p);
n2=getInt(t+1);
v->var=n1-n2;
//printf("%s=%d\\n",v->varname,v->var);//若要立即显示结果就加上本行
return;
t=strstr(p,"*");
if(t)
//乘法运算
*t=0;
n1=getInt(p);
n2=getInt(t+1);
v->var=n1*n2;
//printf("%s=%d\\n",v->varname,v->var);//若要立即显示结果就加上本行
return;
t=strstr(p,"/");
if(t)
//除法运算
*t=0;
n1=getInt(p);
n2=getInt(t+1);
v->var=n1/n2;
//printf("%s=%d\\n",v->varname,v->var);//若要立即显示结果就加上本行
return;
//赋值
v->var=getInt(p);
return;
void main()
char cmdstr[1024];
while(1)
printf(">>");
gets(cmdstr);
if(!strncmp(cmdstr,"print",5))
print(cmdstr+5);
else if(!strcmp(cmdstr,"exit"))//输入exit退出
return;
else if(strstr(cmdstr,"="))
Operation(cmdstr);
参考技术A 现代v周汝昌:《红楼梦》是我们中华民族的一部古往今来、绝无仅有的“文化小说”。如果你想要了解中华民族的文化特点特色,最好的——既最有趣味又最为捷便(具体、真切、生动)的办法就是去读通了《红楼梦》。……《红楼梦》是一部以重人、爱心、唯人为中心思想的书,是我们中华文化史上的一部最伟大的著作。所以他说,《红楼梦》是我们中华民族文化的代表性最强的作品。 [8] [15]
以上是关于c语言实现简单的加减乘除的主要内容,如果未能解决你的问题,请参考以下文章