| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 569 人关注过本帖
标题:下面这个程序为什么老是编译不通过呢?
只看楼主 加入收藏
异域花开
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2009-10-15
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:7 
下面这个程序为什么老是编译不通过呢?
#include <stdio.h>
#include <stdlib.h>
main()
{
      float x;
      printf("input the numbers:");
      scanf("%f",&x);
      switch(x/10)    // 在这里出错
      {
           case 10:printf("Very good");break;
           case 9:printf("A");break;
           default:printf("Very lost");break;
      }
      system("pause");
      return 0;
}

搜索更多相关主题的帖子: 编译 
2009-10-15 21:12
异域花开
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2009-10-15
收藏
得分:0 
但是把float x 改成int x就可以正确编译通过,这又是为什么呢?
程序代码:
#include <stdio.h> 
#include <stdlib.h> 
main() 
{ 
      int x; 
      printf("input the numbers:"); 
      scanf("%f",&x); 
      switch(x/10) 
      { 
           case 10:printf("Very good");break; 
           case 9:printf("A");break; 
           default:printf("Very lost");break; 
      } 
      system("pause"); 
      return 0; 
} 
2009-10-15 21:17
wangxingang
Rank: 1
等 级:新手上路
帖 子:27
专家分:5
注 册:2008-10-31
收藏
得分:5 
switch中不能是float   改为switch(int(x/10))也可以
2009-10-15 21:19
m456m654
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:3
帖 子:783
专家分:2806
注 册:2009-9-17
收藏
得分:5 
#include <stdio.h>
#include <stdlib.h>
main()
{
      float x;
      printf("input the numbers:");
      scanf("%f",&x);
      switch(x/10)    //我在tc2.0下可以正常编译运行,没有错误
      {
           case 10:printf("Very good");break;
           case 9:printf("A");break;
           default:printf("Very lost");break;
      }
      system("pause");
      return 0;
}
switch后面括号内的“表达式”,ANSI标准允许它为任何类型。
2009-10-15 21:33
StarWing83
Rank: 8Rank: 8
来 自:仙女座大星云
等 级:贵宾
威 望:19
帖 子:3951
专家分:748
注 册:2007-11-16
收藏
得分:5 
真的么?

下面内容摘自ISOC99:
6.8.4.2 The switch statement
Constraints
1 The controlling expression of a switch statement shall have integer type.


专心编程………
飞燕算法初级群:3996098
我的Blog
2009-10-15 21:38
m456m654
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:3
帖 子:783
专家分:2806
注 册:2009-9-17
收藏
得分:5 
回复 5楼 StarWing83
我是看到谭浩强书上是这个写的~我也不懂啊~
2009-10-15 21:41
异域花开
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2009-10-15
收藏
得分:0 
以下是引用wangxingang在2009-10-15 21:19:20的发言:

switch中不能是float   改为switch(int(x/10))也可以
switch((int)x/10),这样的吧
2009-10-15 21:58
末日混沌
Rank: 1
来 自:广东汕头
等 级:新手上路
帖 子:2
专家分:0
注 册:2009-10-15
收藏
得分:0 
出错的那条语句中因为是用到“/”取整,所以被除数和除数都要是整数才可以,故X也要定义成整型!
2009-10-15 23:24
快速回复:下面这个程序为什么老是编译不通过呢?
数据加载中...
 
   



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

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