为什么显示0
本帖最后由 连心 于 2016-7-5 02:07 编辑#include<stdio.h>
float shu,temp,sum=0.0;
char fh;
int i,j,k;
int cc(void)
{
for(j=0;j<20;j++)
if(fh=='*'||fh== '/')
{
if(fh=='*')
{
sum+= shu * shu;
}
else
{
if(shu == 0)
printf("input error! div is zero!");
else
{
sum+=shu / shu;
}
}//优先级
}
return (temp);
}
float jiajian(float x)
{
for(k=0;k<20;k++)
{
if(fh=='+'||fh=='-')
{
if(k==(x-1)||k==(x+1))
sum+=shu + x;
else
sum+=shu + shu;
}
else
if(fh=='-')
{
if(k==(x-1)||k==(x+1))
{
if(k==(x-1))
sum+=shu-x;
else
sum+=x - shu;
}
else
sum+=shu - shu;
}
}
}
main()
{
char input;
printf("请输入表达式:");
scanf("%s",input);
for(i=0;i<20;i++)
{
if(input>='0'&&input<='9')
shu = input-'0';
else
fh = input;
}//完成数符分离
jiajian(cc());
printf("%f\n", sum);
}
楼主能把代码格式弄一下么{:5_92:} 首先,不管显示什么,这应该都显示不出来,代码有错,编译应该失败了。shu = input-'0';和fh = input;这两句语法错误。
其次,cc()和jiajian()分别处理乘除和加减。代码不规范,读起来不完全清楚,比如cc():fh里的第j个字符'*'对应累加了shu里的第j、j+1个浮点数的乘积。这具体意义是什么?不太清楚。建议修改一下再看{:10_243:}。 1.楼主是不是要做 6+7*8/2-6=这样的计算器?百度“后缀表达式、c语言四则运算”有现成代码。
2.自己写代码要学着自己调试,看代码是不是按照自己的思路在走。
3.数符分离是我昨天给的建议,自己写了一下,并不合理,楼主不用太花精力了 应该。。。。 单步调试吧
页:
[1]