jpc1361385567 发表于 2013-11-28 18:48:18

一个c程序想不出错误的地方,各位帮忙,谢谢了啊

#include<stdio.h>
void main()
{

        int a,b,c;
        char d;
        printf("please input formula\n");
        scanf("%d,%c,%d",a,b,d);
        switch(d);
        {
        case '+' :
                {
                printf("%d+%d=%d",a,b,c");
                break;
                }
        case '_' :
                {
                printf("%d-%d=%d",a,b,c");
                break;
                }
        }



}

jpc1361385567 发表于 2013-11-28 18:49:33

各位帮忙了,帮人一次胜造七级浮屠

yuqiuwangzi 发表于 2013-11-28 18:57:54

b是int类型,为什么scanf里对应的确实%c...

清风不识字 发表于 2013-11-28 19:12:50

改为scanf("%d,%c,%d",&a,&b,&d);
scanf读入数据除数组外,变量前要加&号。

青苹果苦涩 发表于 2013-11-28 20:02:18

scanf("%d,%c,%d",&a,&d,&b);

1988 发表于 2013-11-28 20:16:05

1、输入有问题:应该是scanf("%d%c%d",&a,&d,&b);你这里出现两个问题,一个是没有加&取地址符,还有一个是在输入格式中加入了逗号,你在输入时也应该将输入按逗号隔开,如果想直接输入“12+5”,则将输入格式中逗号去掉;
2、c并没有赋值,也就是c的输出可能是任意数;按你的意思应该将a和b操作的结果赋值给c

o_O) 发表于 2013-11-28 20:30:06

switch(d);后面打的;不要

o_O) 发表于 2013-11-28 20:38:51

#include<stdio.h>

void main()
{
       
        int a,b,c;
        char d;
        printf("please input formula\n");
        scanf("%d %c %d",&a,&d,&b);
        switch(d)
        {
        case '+' :
                {c=a+b;
                printf("%d%c%d=%d",a,d,b,c);
                break;
                }
        case '-' :
                {c=a-b;
                printf("%d%c%d=%d",a,d,b,c);
                break;
                }
        }
}       
       
       

yuqiuwangzi 发表于 2013-11-28 21:18:20

我已经不需要说啥了。。。楼上的基本上囊括所有问题了

eleven_xxq 发表于 2013-11-29 09:03:35

8#正解。{:5_106:}

微博评论 发表于 2013-12-1 19:49:39

回复@晓桐不算幼稚:好吧,我知道你找不出关键,算了,不过,你很有爱心,谢了

http://bbs.fishc.com/xwb/images/bgimg/icon_logo.png 来自 穷天下之理 的新浪微博
页: [1]
查看完整版本: 一个c程序想不出错误的地方,各位帮忙,谢谢了啊