当前位置: 代码迷 >> C语言 >> [求助]请大家看看我的代码..哪里要改?
  详细解决方案

[求助]请大家看看我的代码..哪里要改?

热度:115   发布时间:2006-08-02 17:38:19.0
[求助]请大家看看我的代码..哪里要改?


我想要表达的是...

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


以下是我写的代码.. 但是显示不是我想要的.. 都已经调了几回了..用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);
}


谢谢了!

搜索更多相关的解决方案: 代码  

----------------解决方案--------------------------------------------------------

#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前面先清空键盘输入的缓存区就好了


----------------解决方案--------------------------------------------------------

谢谢~~ ..

我开始也有加 ..

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


----------------解决方案--------------------------------------------------------
你只需要输入一个进行判断就好了3
没必要分开输入符号
----------------解决方案--------------------------------------------------------
我看见书上用switch写的
我就直接抄录重点部分吧`
switch(ch)
{
case '+'
printf("=%f\n",x+y);
break;
case'-'
printf("=%f\n",x-y);
break;
}
----------------解决方案--------------------------------------------------------
对啊,象这样的问题用swtich语句比较好用一些!不过解决问题的方法有很多种吗!建议都要参考一下,扩展一下思路!
----------------解决方案--------------------------------------------------------

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


----------------解决方案--------------------------------------------------------

/*这样也可以*/
#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();
}


----------------解决方案--------------------------------------------------------
fflush(stdin)起啥作用啊
----------------解决方案--------------------------------------------------------

#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!='#');
}

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


----------------解决方案--------------------------------------------------------
  相关解决方案