求大家帮帮忙,为什么我用强制类型转换算式的时候没有用?

qq_40669215 2017-10-31 10:01:01
...全文
169 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2017-11-02
  • 打赏
  • 举报
回复
赵4老师 2017-11-02
  • 打赏
  • 举报
回复
#include <stdio.h>
void sf(float f) {
    switch((int)f) {
        case (int)1.1f:
            printf("1\n");
        break;
        case (int)2.2f:
            printf("2\n");
        break;
        case (int)3.3f:
            printf("3\n");
        break;
        default:
            printf("?\n");
        break;
    }
}
int main() {
    float f1=1.1f,f2=2.2f,f3=3.3f;
    sf(f1);
    sf(f2);
    sf(f3);
    return 0;
}
//1
//2
//3
//
paschen 2017-11-01
  • 打赏
  • 举报
回复
condition - any expression of integral or enumeration type, http://en.cppreference.com/w/cpp/language/switch
paschen 2017-11-01
  • 打赏
  • 举报
回复
switch后面的表达式只能是包含整数或枚举的类型,不能是浮点数
starytx 2017-11-01
  • 打赏
  • 举报
回复
不是不可以强制转换,而是switch里边不能是float,你可以定义一个int xxx=(int)score/10;然后switch里边写这个xxx
HomerRo 2017-11-01
  • 打赏
  • 举报
回复
switch 语句 (C) Visual Studio 2015Visual Studio 2015 switch 和 case 语句帮助控制复杂条件和分支运算。 switch 语句将控制权转交给其主体中的语句。 语法 -------------------------------------------------------------------------------- selection-statement: switch ( expression ) statement labeled-statement: case constant-expression : statement default : statement 控制权将传递给其 case constant-expression 与 switch ( expression ) 的值匹配的语句。 switch 语句可以包含任意数量的 case 实例,但同一 switch 语句中的两个 case 常量不能具有相同的值。 语句体的执行从选定语句处开始并继续,直到该主体的结尾或直到 break 语句将控制权转交给主体外部。 switch 语句的使用通常类似于: switch ( expression ) { 声明 . . . case constant-expression : statements executed if the expression equals the value of this constant-expression . . . break; default : statements executed if expression does not equal any case constant-expression } 可以使用 break 语句结束 switch 语句中特定用例的处理并分支到 switch 语句的末尾。 如果不使用 break,则程序会继续到下一用例,并执行语句,直到达到 break 或该语句的末尾。 在某些情况下,可能需要此继续符。 如果任何 case constant-expression 均不等于 switch ( expression ) 的值,则会执行 default 语句。 如果省略 default 语句且未找到任何 case 匹配项,则不会执行 switch 主体中的任何语句。 最多可以有一个 default 语句。 default 语句无需显示在末尾;它可以显示在 switch 语句主体中的任何位置。 case 或 default 标签只能显示在 switch 语句内部。 switch expression 和 case constant-expression 的类型必须是整型。 每个 case constant-expression 的值在语句体中必须是唯一的。 switch 语句体的 case 和 default 标签只在初始测试中有意义,该测试将确定语句体中开始执行的位置。 Switch 语句可以嵌套。 在执行到任何 switch 语句中之前,将初始化所有静态变量。
自信男孩 2017-11-01
  • 打赏
  • 举报
回复
switch要求的是整型,(整型数或short, char类型的)
自信男孩 2017-11-01
  • 打赏
  • 举报
回复
即使强制类型转换,但是score还是float类型,switch要求是整型数,所以会提示error(或警告); 方法是将score/10的结果赋值给一个整型数变量,不需要再做强制类型转换;然后用这个整型数放到switch中。
中文编程系统化教程初级1学习编程捷径:(不论是正在学习编程的大学生,还是IT人士或者是编程爱好者,在学习编程的过程中用正确的学习方法可以达到事半功倍的效果。对于初学者,可以通过下面的方法学习编程,通过对成百上千个实例练习,则很快会成为编程高手。我们专业从事编程十几年,积累了丰富的编程经验,会陆续制作编程视频供大家学习,中级、高级编程我们会专门制作中高级的系列编程课程,难度逐步加深,想学编程的可以关注我们的系列课程。可以就相关编程问题提问。1、【编程工具分为 免费自由版、专业版、企业版。】首先通过免费自由版熟悉基本操作,通过我们提供的实例视频学习编程,先快速入门。2、基本入门后,再学习我们提供的中级编程课程,通过对若干实例的编程练习,基本可以掌握编程思路。3、想继续加深学习的,可以继续学习高级版编程课程,通过对连接数据库等的学习真正开发出实用的商业管理软件或定制开发程序。4、基本掌握了编程思路之后,再学习其他的编程语言或大学里的编程课程则会非常轻松,因为不论是哪个编程语言,最重要的是学习编程思路,而编程思路基本上是相通的。5、学习完PC电脑端编程后,还可以继续学习APP手机软件开发。APP手机软件开发需要有PC电脑上开发基础,操作基本类似。6、编程工具为 搭建之星,这个编程工具的特点:1、安装简单、迅速,纯中文界面,构件丰富,设计过程直观、自由;无需掌握电脑语言,所有编程构件化、命令化、可视化。2、交互式开发,只需要四种类型的“命令”,便可以建立各构件之间的联系;象搭积木一样简单,并可快速的搭建出具有专业水平的软件作品。3、微解释执行,命令解释量小,执行速度快。可以和编译后的可执行文件相媲美。4、提供打包工具,使您即刻将自制软件安装到其它机器上运行。5、自动对开发项目进行加密;使您的项目,在未经授权下,别人无法“浏览、修改”项目的构件关系与搭建方法。课程安排:初级11  初级概述2  熟悉构件取值赋值3 折叠式菜单滑动面板编程4 自定义图形窗口自定义标题栏编程5 多行文本分段显示编程6 调用外部exe文件关闭外部exe文件编程7 给自己编写的项目设置密码8 制作一个计算器编程9 图片浏览编程10 看图软件编程11 配置文件读写编程12密码验证登录编程13软件启动窗口编程14增加软件工具条菜单15调色板编程16随机算式编程17螳螂捕蝉多窗口显示编程18 删除指定的字符行编程19计算表达式编程20扩展系统菜单21时间计算秒级计算编程22数值范围判断编程23数值比较取中间值编程24随机抽取编程25锁定窗口编程26文件拷贝显示进度条编程27项目间传递参数公用数据编程28项目间传递参数执行文件编程29字符串截取编程30多媒体实例澳门介绍编程31电影播放软件编程32初级1总结【使用这个编程工具开发的部分实际案例】   

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧