| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 808 人关注过本帖
标题:[求助]请大家看看我的代码..哪里要改?
只看楼主 加入收藏
christ919
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2006-8-2
收藏
 问题点数:0 回复次数:12 
[求助]请大家看看我的代码..哪里要改?


我想要表达的是...

输入两个数, 然后接受字符, 如果是“+”,两个数相加并显示结果..
如果是“-”,两个数相减并显示结果.


以下是我写的代码.. 但是显示不是我想要的.. 都已经调了几回了..用IF语句的话.. 条件又不可以打成(a=="+")这样..

希望大家帮帮看.. 怎么去改正..


#include<stdio.h>
void main()
{
char a,b;
int num1,num2,a1,b1;

printf("请输入两个整数:");
scanf("%d%d",&num1,&num2);

a1=num1+num2;
b1=num1-num2;

printf("\n请输入运算符号:");

a=getchar();

if ((a=='+'))
{
printf("它们的和为%d\n",a1);
}

b=getchar();

if ((a=='-'))
{
printf("它们的差为%d\n",b1);
}


谢谢了!

搜索更多相关主题的帖子: 代码 
2006-08-02 17:38
zpeye
Rank: 1
等 级:新手上路
帖 子:50
专家分:0
注 册:2006-7-26
收藏
得分:0 

#include<stdio.h>
void main()
{
char a,b;
int num1,num2,a1,b1;

printf("请输入两个整数:");
scanf("%d%d",&num1,&num2);

a1=num1+num2;
b1=num1-num2;

printf("\n请输入运算符号:");

fflush(stdin);
a=getchar();

if ((a=='+'))
{
printf("它们的和为%d\n",a1);
}
if ((a=='-'))
{
printf("它们的差为%d\n",b1);
}
}
在getchar前面先清空键盘输入的缓存区就好了


2006-08-02 17:44
christ919
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2006-8-2
收藏
得分:0 

谢谢~~ ..

我开始也有加 ..

不过我可能是多了一步 b=getchar()的缘故..老是出错


循环结构学习中..。。
2006-08-02 18:21
zpeye
Rank: 1
等 级:新手上路
帖 子:50
专家分:0
注 册:2006-7-26
收藏
得分:0 
你只需要输入一个进行判断就好了3
没必要分开输入符号

2006-08-02 19:00
x乌鱼
Rank: 1
等 级:新手上路
帖 子:58
专家分:0
注 册:2006-7-1
收藏
得分:0 
我看见书上用switch写的
我就直接抄录重点部分吧`
switch(ch)
{
case '+'
printf("=%f\n",x+y);
break;
case'-'
printf("=%f\n",x-y);
break;
}

2006-08-02 21:40
神经塔
Rank: 6Rank: 6
等 级:贵宾
威 望:20
帖 子:1987
专家分:4
注 册:2006-7-1
收藏
得分:0 
对啊,象这样的问题用swtich语句比较好用一些!不过解决问题的方法有很多种吗!建议都要参考一下,扩展一下思路!

[shadow=255,red,2]待到秋来九月八,我花开时百花杀。冲天香阵透长安,满城尽是黄金甲。 [/shadow]
2006-08-02 21:54
ki11er
Rank: 1
等 级:新手上路
帖 子:36
专家分:0
注 册:2006-8-2
收藏
得分:0 

同意6楼的看法,用switch确实省事不少,但在只有两种条件的情况下用if也可以,并无多大区别,只是注意别忘了fflush(stdin)

2006-08-02 23:52
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 

/*这样也可以*/
#include<stdio.h>
void main()
{
char a;
int num1,num2;

printf("请输入两个整数:");
scanf("%d%d",&num1,&num2);
getchar();
printf("\n请输入运算符号:");

scanf("%c",&a);
if ((a=='+'))
{
printf("它们的和为%d\n",num1+num2);
}

if ((a=='-'))
{
printf("它们的差为%d\n",num1-num2);
}
getch();
}


倚天照海花无数,流水高山心自知。
2006-08-03 09:48
ybbct
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2006-8-3
收藏
得分:0 
fflush(stdin)起啥作用啊
2006-08-03 17:46
美眉
Rank: 1
等 级:新手上路
帖 子:44
专家分:0
注 册:2006-8-3
收藏
得分:0 

#include<stdio.h>
void main()
{
char a;
int num1,num2;

printf("请输入两个整数:");
scanf("%d,%d",&num1,&num2);
getchar();
printf("\n请输入运算符号:");
printf("\n输入#运算符号退出:\n");

scanf("%c",&a);
do
{
if ((a=='+'))
{
printf("它们的和为%d\n",num1+num2);
}

if ((a=='-'))
{
printf("它们的差为%d\n",num1-num2);
}
scanf("%c",&a);
}while(a!='#');
}

我的愚见,我看这样改还要好一点!


2006-08-03 17:48
快速回复:[求助]请大家看看我的代码..哪里要改?
数据加载中...
 
   



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

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