1148908872 发表于 2014-8-16 14:34:03

本人初学C遇到了困难求帮忙

#include <stdio.h>
int main(void)
{
        float a=3.5f;
        float b=5.5f;
        short c=0;
        short d=0;
        float e=0.0f;
        printf("请输入要买的版本,a是标准版3.5一个,b是豪华版5.5一个\n请输入要买a版本的数量:");
        scanf("%f,&c");
        printf("请输入要买的b版本的数量:");
        scanf("%f",&d);
        e=a*c+b*d;
        printf("一共的价钱是%.2f元\n",e);
       
    return 0;
}
这个就是一个很简单的程序,在本人看来没有错误可是为什么到最后显示的却是0.00不应该是e的值吗?
求解

1148908872 发表于 2014-8-16 14:34:42

:cry有人吗?求解

jialebihaidai 发表于 2014-8-16 07:02:12

首先,这句写错了
scanf("%f,&c");

1148908872 发表于 2014-8-16 07:06:41

为何

1148908872 发表于 2014-8-16 07:07:13

本帖最后由 1148908872 于 2014-8-16 07:08 编辑

哦,修改了还是一样啊

jialebihaidai 发表于 2014-8-16 07:11:24

#include <stdio.h>
int main(void)
{
      float a=3.5f;
      float b=5.5f;
      int c=0;
      int d=0;
      float e=0.0f;
      printf("请输入要买的版本,a是标准版3.5一个,b是豪华版5.5一个\n请输入要买a版本的数量:");
      scanf("%d",&c);
      printf("请输入要买的b版本的数量:");
      scanf("%d",&d);
      e=a*c+b*d;
      printf("一共的价钱是%.2f元\n",e);

    return 0;
}

1148908872 发表于 2014-8-16 07:17:39

jialebihaidai 发表于 2014-8-16 07:11
#include
int main(void)
{


用Int不行吗?

jialebihaidai 发表于 2014-8-16 07:19:53

1148908872 发表于 2014-8-16 07:17
用Int不行吗?
你用的是short吧,红字是我已经修改过的

1148908872 发表于 2014-8-16 07:20:30

jialebihaidai 发表于 2014-8-16 07:19
你用的是short吧

看错了,谢谢了

jialebihaidai 发表于 2014-8-16 07:23:33

1148908872 发表于 2014-8-16 07:06
为何

用short的话,在给d赋值后c会变成0,原因我也不知道。坐等大神吧

1148908872 发表于 2014-8-16 07:24:44

在想问一下这里用short和int不都一样吗?short和int相比不是short占的字节更少吗?

jialebihaidai 发表于 2014-8-16 15:34:50

1148908872 发表于 2014-8-16 07:24
在想问一下这里用short和int不都一样吗?short和int相比不是short占的字节更少吗?

scanf("%hd", c);scanf("%hd", d);
这样用就对了。
%d开辟的内存比short要大

xubin2004198 发表于 2014-8-16 15:36:04

#include <stdio.h>
int main(void)
{
      float a=3.5f;
      float b=5.5f;
      short c=0;
      short d=0;
      float e=0.0f;
      printf("请输入要买的版本,a是标准版3.5一个,b是豪华版5.5一个\n请输入要买a版本的数量:");
      scanf("%d",&c);
      printf("请输入要买的b版本的数量:");
      scanf("%d",&d);
      e=a*c+b*d;
      printf("一共的价钱是%.2f元\n",e);
      
    return 0;
}

xubin2004198 发表于 2014-8-16 15:36:58

这样就可以过了呀....:lol:

jialebihaidai 发表于 2014-8-16 15:37:31

本帖最后由 jialebihaidai 于 2014-8-16 15:38 编辑

xubin2004198 发表于 2014-8-16 15:36

好吧,这个因环境而异

1148908872 发表于 2014-8-16 15:38:20

懂了

1148908872 发表于 2014-8-16 15:40:34

我还有什么问题,我还会来的

三足金乌 发表于 2014-8-17 15:01:22

这样真的对吗?0*任何数都等0吧:lol::lol:

三足金乌 发表于 2014-8-17 15:02:30

我错了没看清楚:ton::ton:
页: [1]
查看完整版本: 本人初学C遇到了困难求帮忙