搜索
查看: 582|回复: 5
打印 上一主题 下一主题

这是什么问题呢?

[复制链接]
跳转到指定楼层
楼主
发表于 2014-7-9 01:22:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
5啊哈币
#include <stdio.h>
#include <stdlib.h>
void main()
{
        float a,b;
    char p;
    printf("请您输入,你想计算的表达示:\n");
    scanf("%f%c%f",&a,&p,&b);
    switch(P)
    {
                case '+':
        printf("%.2f%c%.2f=%.2f",a,p,b,a+b);
                break;
                case '-':
        printf("%.2f%c%.2f=%.2f",a,p,b,a-b);
                break;
                case '*':
        printf("%.2f%c%.2f=%.2f",a,p,b,a*b);
                break;
                case '/':
                        if (b==0)
                                printf("你输入的数有误,除数不能是0\n");
                                        else printf("%.2f%c%.2f=%.2f",a,p,b,a/b);  
    }
        system("pause");
        return 0;
}

这是一个计算器,编译通不过,啊哈C提示;In function'main',这是说main没定义吗?但那个switch(P)中的P两边加上‘’编译能过,可结果不正确,输入数字,程序直接完了。

最佳答案

查看完整内容

P改成小写的p(你定义变量的是小写的p) (PS.尽量用double不要用float)
沙发
发表于 2014-7-9 01:22:38 | 只看该作者
本帖最后由 Dsp 于 2014-7-9 10:32 编辑

P改成小写的p(你定义变量的是小写的p)
(PS.尽量用double不要用float)
板凳
 楼主| 发表于 2014-7-9 01:27:40 | 只看该作者
对了,在编译器中,有个红三角停在switch(P)那一行上,这是说这一行有错吗?
地板
发表于 2014-7-9 10:38:46 | 只看该作者
但那个switch(P)中的P两边加上‘’编译能过,可结果不正确,输入数字,程序直接完了。

这样就是把P和+,-,*,/比较,P和它们都不相等所以没有执行后面的语句
5#
发表于 2014-7-9 10:51:25 | 只看该作者
P改成小写,因为在C语言中,P和p是两个不同的变量
6#
 楼主| 发表于 2014-7-9 19:51:52 | 只看该作者
Dsp 发表于 2014-7-9 10:31
P改成小写的p(你定义变量的是小写的p)
(PS.尽量用double不要用float)

这事我昨天也想过,可能昨天键盘有问题,那个P我改了不少10,我一直以为是小写的,十分感谢了
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

广播台
特别关注
快速回复 返回顶部 返回列表