回 帖 发 新 帖 刷新版面

主题:无法得到相应的结果

#include "stdio.h"
main()
{
 int a,b; char n;
 printf("请输入俩个数\n:");
 scanf("%d%d",&a,&b);
 switch('n')
 {
     case '+': n=a+b; break;
     case '-': n=a-b; break;
     deault: n=a*b;
 }
 printf("你输入的结果是\n",n);
 scanf("%d",&n);
}

我想根据输入不同的用算符的到不同的结果.好象是逻辑错误.希望大哥门帮忙.

回复列表 (共6个回复)

沙发

按照你的设计思想,switch中的测试表达式应该是字符型变量n啊。
另外,你的字符型变量n没有经过动态赋值。

#include "stdio.h"
main()
{
 int a,b,c; 
 char n;
 printf("请输入俩个数\n:");
 scanf("%d%d",&a,&b);
 printf("请输入运算符\n:");
 scanf(" %c",&n);
 switch(n)
 {
     case '+': c=a+b; break;
     case '-': c=a-b; break;
     deault: c=a*b;
 }
 printf("运算结果是%d\n。",c);
}

板凳


#include "stdio.h"
main()
{
 int a,k,b; char n;
 printf("请输入俩个数\n:");
 scanf("%d%d%c",&a,&b,&n);
 switch('n')
 {
     case '+': k=a+b; break;
     case '-': k=a-b; break;
     deault: k=a*b;
 }
 printf("你输入的结果是\n",k);
 
 这样可以,.主要是因为程序编译时运形得很快,把你在你输入完整形的a,b后所加的一个回车当成了字符型的n,所以运行结果总是a*b,
也因为这样,我的算法中输入数据时a和b间有空格,而b和n间没有!~也就是要这样输入:
a b+再回车

3 楼

楼上的老哥,好象想你那样赋值不得耶!~

4 楼

哦,得,不过赋值的时候还得象我那样赋才得哦!~

5 楼

你们都错了一个关键字,default

6 楼

哦,哈,细心点好

我来回复

您尚未登录,请登录后再回复。点此登录或注册