标题:我错在哪里呀?
只看楼主
指幕天
Rank: 1
等 级:新手上路
帖 子:47
专家分:0
注 册:2006-3-7
 问题点数:0 回复次数:8 
我错在哪里呀?

#include "stdio.h"
main()
{
double m=0,n=0;
for(;;)
{
scanf("%f",&n);
if(getchar()=='+')
{
scanf("%f",&m);
n+=m; printf("=%f",n);
}
if(getchar()=='-')
{
scanf("%f",&m);
n-=m; printf("=%f",n);
}
if(getchar()=='*')
{
scanf("%f",&m);
n*=m; printf("=%f",n);
}
if(getchar()=='/')
{
scanf("%f",&m);
if(m==0)printf("error");
else n/=m; printf("=%f",n);
}

}
}
四则运算计算器的编程...我错在哪里呀?请高手指点!

搜索更多相关主题的帖子: scanf getchar printf 
2006-03-22 19:38
haishanglang
Rank: 1
等 级:新手上路
帖 子:378
专家分:0
注 册:2006-3-2
得分:0 
以下是引用指幕天在2006-3-22 19:38:00的发言:

#include "stdio.h"
main()
{
double m=0,n=0; //用float精度足够了
for(;;)
{
scanf("%f",&n);
if(getchar()=='+') //你输入了n后按了回车键,因此这里的 getchar()为'\n' ,非'+','-",' * ',"/"
{
scanf("%f",&m);
n+=m; printf("=%f",n);
}
if(getchar()=='-')
{
scanf("%f",&m);
n-=m; printf("=%f",n);
}
if(getchar()=='*')
{
scanf("%f",&m);
n*=m; printf("=%f",n);
}
if(getchar()=='/')
{
scanf("%f",&m);
if(m==0)printf("error");
else n/=m; printf("=%f",n);
}

}
}
四则运算计算器的编程...我错在哪里呀?请高手指点!


2006-03-22 20:08
haishanglang
Rank: 1
等 级:新手上路
帖 子:378
专家分:0
注 册:2006-3-2
得分:0 

这是修改后的程序:
#include <stdio.h>
main()
{
float m=0,n=0;
int i;
char c;
printf("Input n:\n");
scanf("%f",&n);
printf("Input oper:\n");
c=getchar(); //存储回车键'\n'
if(c=='\n') c=getchar(); //存储操作符
if(c=='+')
{
printf("Input m:\n");
scanf("%f",&m);
n+=m; printf("=%f",n);
}
if(c=='-')
{
scanf("%f",&m);
n-=m; printf("=%f",n);
}
if(c=='*')
{
scanf("%f",&m);
n*=m; printf("=%f",n);
}
if(c=='/')
{
scanf("%f",&m);
if(m==0)printf("error");
else n/=m; printf("=%f",n);
}


}


2006-03-22 20:10
指幕天
Rank: 1
等 级:新手上路
帖 子:47
专家分:0
注 册:2006-3-7
得分:0 
以下是引用haishanglang在2006-3-22 20:08:00的发言:

以下是引用指幕天在2006-3-22 19:38:00的发言:

#include "stdio.h"
main()
{
double m=0,n=0; //用float精度足够了
for(;;)
{
scanf("%f",&n);
if(getchar()=='+') //你输入了n后按了回车键,因此这里的 getchar()为'\n' ,非'+','-",' * ',"/"
{ /*我没有按回车的
scanf("%f",&m);
n+=m; printf("=%f",n);
}
if(getchar()=='-')
{
scanf("%f",&m);
n-=m; printf("=%f",n);
}
if(getchar()=='*')
{
scanf("%f",&m);
n*=m; printf("=%f",n);
}
if(getchar()=='/')
{
scanf("%f",&m);
if(m==0)printf("error");
else n/=m; printf("=%f",n);
}

}
}
四则运算计算器的编程...我错在哪里呀?请高手指点!


念双燕,难凭音信;指幕天,空识归航!
2006-03-22 21:45
cxwl3sxl
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:495
专家分:129
注 册:2005-11-12
得分:0 

为什么不用switch case语句呢,应该要简单些吧!


努力,哈哈,总有一天会变成高手~~~~~~因为我相信:没有办不到,只有想不到!http://t..cn/fpress
2006-03-22 21:49
指幕天
Rank: 1
等 级:新手上路
帖 子:47
专家分:0
注 册:2006-3-7
得分:0 
是的,我只是想知道上面哪里错了.....先在还不明白,请指教...

念双燕,难凭音信;指幕天,空识归航!
2006-03-22 21:55
cxwl3sxl
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:495
专家分:129
注 册:2005-11-12
得分:0 
你的次序编译连接都能通过啊?

努力,哈哈,总有一天会变成高手~~~~~~因为我相信:没有办不到,只有想不到!http://t..cn/fpress
2006-03-22 22:00
cxwl3sxl
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:495
专家分:129
注 册:2005-11-12
得分:0 
你看看图片

[此贴子已经被作者于2006-3-22 22:06:17编辑过]


努力,哈哈,总有一天会变成高手~~~~~~因为我相信:没有办不到,只有想不到!http://t..cn/fpress
2006-03-22 22:05
指幕天
Rank: 1
等 级:新手上路
帖 子:47
专家分:0
注 册:2006-3-7
得分:0 
但是运行结果不对呀...

念双燕,难凭音信;指幕天,空识归航!
2006-03-23 16:48



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-52102-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.128713 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved