标题:小白求解!!!
只看楼主
老四Dae
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2018-10-10
结帖率:100%
已结贴  问题点数:20 回复次数:3 
小白求解!!!

#include "stdio.h"
void main()
{
    int n1,n2;
    char a;
    printf("请按顺序输入两个数字和运算符\n");
    scanf("%f,%f",&n1,&n2);
    switch(a)
    {
        case'+':result=n1+n2;
            break;
        case'-':result=n1-n2;
            break;
        case'*':result=n1*n2;
            break;
        case'/':if(n2==0)
                    printf("输入的数字非法,请从新输入");
                else
                    result=n1/n2;
            break;
        default:printf("运算符非法");
    }
    printf("%.2c",result);

}

上面是代码。一直出现问题。各位大神看看,求解!
搜索更多相关主题的帖子: printf 输入 case result break 
2018-10-21 10:27
zxq1998
Rank: 2
等 级:论坛游民
帖 子:19
专家分:11
注 册:2016-10-5
得分:7 
result没有定义
还有default后面还要加个break吧
2018-10-21 10:36
Mr_doge
Rank: 5Rank: 5
等 级:贵宾
威 望:10
帖 子:159
专家分:385
注 册:2018-6-28
得分:7 
首先LS已经说了,你有个变量result没声明就直接使用了

其次你的程序加上声明result也并不会达成你交互的目的,例如,输入1+2,你的程序的scanf()接收数字并传递给n1和n2,但是却并没有输入传递给char a,也就是说并未按照你的想法读入运算符,你是不是在scanf()函数里漏了某些非常重要的东西呢?
2018-10-21 12:35
MeandC
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:8
帖 子:245
专家分:792
注 册:2018-7-14
得分:7 
标准是不认可void main() ,改掉这样写的习惯比较好。
整型数和浮点数是不一样的,n1,n2用float或者double来声明。
变量用之前是要声明的,result要声明。
你虽然申明了字符变量,但是你没有读取字符变量的语句,字符变量没有被赋值,后面的switch怎么运行。

C果然是有点难啊!
2018-10-21 13:19



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




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

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