标题:究竟谁是高手中的高手
只看楼主
潜行者
Rank: 1
等 级:新手上路
帖 子:40
专家分:0
注 册:2007-12-29
结帖率:100%
 问题点数:0 回复次数:11 
究竟谁是高手中的高手
程序如下:调试时提示数据的类型转换有问题,可能会遗失数据,请各位高人帮找下BUG点,小第才疏学浅2小时了实在找不到问题点,请各位大侠们指点一二.3Q啦!
#include "stdio.h"
void main()
{
  int c,s;
  float p,w,d,f;
  sprintf("请输入货的单价,重量,距离:");
  scanf("%f,%f,%d",&p,&w,&s);
  if(s>=3000) c=12;
  else c=s/250;
  switch(c)
  {
      case 0:d=0;break;
      case 1:d=2;break;
      case 2:
      case 3:d=5;break;
      case 4:
      case 5:
      case 6:
      case 7:d=8;break;
      case 8:
      case 9:
      case 10:
    case 11:d=10;break;
    case 12:d=15;break;
  }
  f=p*w*s*(1-d/100.0);
  printf("价格是:%10.2f\n",f);
}
搜索更多相关主题的帖子: case BUG break 
2007-12-31 22:26
ioriliao
Rank: 7Rank: 7Rank: 7
来 自:广东
等 级:贵宾
威 望:32
帖 子:2829
专家分:647
注 册:2006-11-30
得分:0 
你怎么发重贴了..你发的先前发的那张我不是回答你了么?
2007-12-31 22:36
潜行者
Rank: 1
等 级:新手上路
帖 子:40
专家分:0
注 册:2007-12-29
得分:0 
定义为float也不行啊,编译也通不过.真迷糊了.
2007-12-31 22:38
mp3aaa
Rank: 5Rank: 5
等 级:贵宾
威 望:17
帖 子:2013
专家分:8
注 册:2006-2-15
得分:0 
、、、、、、、、、、、、、、就这个问题吗?
#include "stdio.h"
void main()
{
  int c,s;
  float p,w,d,f;
  printf("请输入货的单价,重量,距离:");
  scanf("%f,%f,%d",&p,&w,&s);/////////////输入的时候 注意格式如 5,5,10
  if(s>=3000) c=12;
  else c=s/250;
  switch(c)
  {
      case 0:d=0;break;
      case 1:d=2;break;
      case 2:
      case 3:d=5;break;
      case 4:
      case 5:
      case 6:
      case 7:d=8;break;
      case 8:
      case 9:
      case 10:
    case 11:d=10;break;
    case 12:d=15;break;
  }
  f=p*w*s*(1-d/100.0);
  printf("价格是:%10.2f\n",f);
}

羊肉串 葡萄干 哈密瓜!!
2007-12-31 22:42
無邪的睡脸
Rank: 2
等 级:等待验证会员
威 望:1
帖 子:344
专家分:13
注 册:2007-9-11
得分:0 
这程序没什么问题了吧
2007-12-31 22:46
潜行者
Rank: 1
等 级:新手上路
帖 子:40
专家分:0
注 册:2007-12-29
得分:0 
不行啊,不知道是不是编译系统的问题,唉今天又睡不着了.
2007-12-31 22:49
ioriliao
Rank: 7Rank: 7Rank: 7
来 自:广东
等 级:贵宾
威 望:32
帖 子:2829
专家分:647
注 册:2006-11-30
得分:0 
#include <stdio.h>
void main(void)
{
  float c,s;
  float p,w,d,f;
  printf("请输入货的单价,重量,距离:");
  scanf("%f,%f,%f",&p,&w,&s);/////////////输入的时候 注意格式如 5,5,10
  if(s>=3000)
  {
        c=12;
  }
  else
  {
        c=s/250;
  }
  switch((int)c)
  {
      case 0:
        d=0;break;
      case 1:
        d=2;break;
      case 3:
        d=5;break;
      case 7:
        d=8;break;
    case 11:
        d=10;break;
    case 12:
        d=15;break;
  }
  f=p*w*s*(1-d/100.0);
  printf("价格是:%10.2f\n",f);
  getchar();
  getchar();
  return 0;
}
2007-12-31 22:49
leeco
Rank: 4
等 级:贵宾
威 望:10
帖 子:1026
专家分:177
注 册:2007-5-10
得分:0 
f=p*w*s*(1-d/100.0);
左边是float右边是double,所以有这个warning,over.
2007-12-31 22:56
潜行者
Rank: 1
等 级:新手上路
帖 子:40
专家分:0
注 册:2007-12-29
得分:0 
谢谢楼上的大哥,刚才我可能是输入字符有问题,我重新输入了一次就可以通过编译了如下:
#include <stdio.h>
void main()
{ int c,s;
  float p,w,d,f;
  printf("请输入货的单价,重量,距离:");
  scanf("%f,%f,%d",&p,&w,&s);
  if(s>=3000) c=12;
  else c=s/250;
   switch(c)
  {
      case 0: d=0;break;
      case 1: d=2;break;
      case 3: d=5;break;
      case 7: d=8;break;
      case 11: d=10;break;
      case 12: d=15;break;
  }
  f=p*w*s*(1-d/100.0);
  printf("价格是:%10.2f\n",f);
 }
2007-12-31 23:12
岳C
Rank: 1
等 级:禁止发言
帖 子:354
专家分:0
注 册:2007-7-16
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽

坚持到底
2008-01-01 13:06



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




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

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