main (void)
{
int a,b,c
char op
scanf ("%d%c%d",&a,&op,&b)//最好空格去掉,这样就可以直接写成a+b或者a-b。如果有空格的话要记得空格也要打a + b。要不会出现错误 ,而且输入的时候需要用地址枯野唯符&····
if(op=='+')
{c=a+b}
if(op=='-')
{c=a-b}
printf("%d%c%d=%d\n",a,op,b,c)//楼主这句应该放在脊厅数据处理完后。。要不你输出的a,op,b都是在没处理过的数,也就是原来的值,而且最好是把,去掉,这样更美观 ,而且printf后面不需要&。没培。。切记。而且没必要那样输出。请楼主看我的printf```
}
还不清楚 来hi我
分类: 电脑/网络 >>程序设计 >>其他编程语言问题描述:
功能为首先有一个界面问"请输入你想进行运算的对象个数”
这个数在一至5之间
然后出来界面让输入算术式
然后输入结果
然后有计算机判断对错
解析:
哈哈,刚好,我也在学C语言,碰巧,这几天也正在思考编写计算器的问题.网上应该能找到经典的C程序计算器,这个是我独立写出来的.
我只学到数组这里.所以没用到堆栈,指针之类的.主要用数组,循环与函数调用实现.完全是入门级.
支冲雹持四则运算和指数运算(用h符)。
数没卖据类型为float型。
算术式最大长度可以通过修改程序中的数组长度和“I”值更该,没有具体规定,使用时要注意运算结果的溢出问题。
对错误的算术式有一定的检查功能。
程序代码如下:
#include<散察帆math.h>
float sss(float d[],char e[],int I)
{int i,n
for(i=0i<=In=++i)
{if(e[i]==0)
{printf("The answer is:-->: %f\n",d[i])i=I}
else
{if(e[i]-e[i+1]>-5)
{switch(e[i])
{case 80: d[i+1]=d[i]+d[i+1]break
case 81: d[i+1]=d[i]-d[i+1]break
case 90: d[i+1]=d[i]*d[i+1]break
case 91: d[i+1]=d[i]/d[i+1]break
case 100: d[i+1]=pow(d[i],d[i+1])break
default :printf("Sorry! Some Error unknow...")break}
for(n=ii<=Ii++)
{d[i]=d[i+1],e[i]=e[i+1]
if(e[i]==0) i=I}
if(n==0) i=n-1
else i=n-2}}}}
main()
{float d[32]
char e[32]
int i,I=31,n
printf("\n\n")
for(i=0i<=Ii++)
{scanf("%f%c",&d[i],&e[i])
switch(e[i])
{case '+': e[i]=80break
case '-': e[i]=81break
case '*': e[i]=90break
case '/': e[i]=91break
case 'h': e[i]=100break
case '=': e[i]=0,i=Ibreak
default: printf("Oper %d is Error! --->- %c -ChangeTo:one of + - * / h =\n",i+1,e[i])}}
printf("\n")
sss(d,e,I)}
直接从我的.c文件里复制出来的.
使用时输入格式例如:123*456-789/369+852h2-741= 然后回车.
852h2表示852的2次方.记得以等号结束.不支持括号(正在努力).
在这支持的32次运算(包括等号).
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)