| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2231 人关注过本帖
标题:一个初级程序。希望指点啊
只看楼主 加入收藏
卧龙先生
Rank: 1
等 级:新手上路
帖 子:77
专家分:0
注 册:2004-7-18
收藏
 问题点数:0 回复次数:22 
一个初级程序。希望指点啊

有这么一个程序,但是错漏百出。希望指点一下啊

#include "stdio.h" #define p printf #define s scanf

main() { int x; p("Please Input x="); s("%d",&x); switch(x) { int y; case x<0 && x!=-3 : y=x*x+2*x-6; case 0=<x<10&&x!=2&&x!=3 : y=x*x-5*x+6; default : y=x*x-x-15; p("%d",y); }

}

错误 temp.c 13: 需要用常量表达式 在函数 (请问这句话什么意思) 错误 temp.c 14: 表达式语法错 在函数 (请问这句话什么意思) 错误 temp.c 14: case语句缺少':' 在函数 (好像没有少啊) 错误 temp.c 14: 重复的case 在函数 (请问这句话什么意思)

搜索更多相关主题的帖子: 初级 
2004-07-19 12:20
神vLinux飘飘
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:浙江杭州
等 级:贵宾
威 望:91
帖 子:6140
专家分:217
注 册:2004-7-17
收藏
得分:0 

首先,我想说的是

#define p printf #define s scanf

你的这两句对我启发很大,谢谢,以后我就不用打这么多printf之类的了

然后,我们来解决问题

"需要用常量表达式 在函数" 这句的意思是switch(..)括号中的参数必须要是一个常数,或者常数表达式 同样需要是常数的还有case后面

"表达式语法错 在函数" 这句的意思是你的case后面的语句不是常量或者常量表达式

"case语句缺少':' 在函数" 系统认为你不是一个数~那系统就认为你是个字符,而字符必须是由' '括起来的,所以系统就认为你缺少了' ',其实这个是系统的误报,没什么用处。但一切错误都是你造成的,所以你要对她负责哦~

"重复的case 在函数"这个同上~也是误报,其实只要你修改好了,自然也就没了

下面是我的一个例子

#include <stdio.h> main() { int x; printf("\nPlease input a number:"); scanf("%d",&x); switch(x) { case 1:printf("I'm a Human player!");break; case 2:printf("I do this for Aiur!");break; case 3:printf("For the Lich King!");break; default:printf("I'm a Protoss player!"); } getch(); }


淘宝杜琨
2004-07-19 12:40
雨夜探月
Rank: 1
等 级:新手上路
帖 子:31
专家分:0
注 册:2004-7-15
收藏
得分:0 

这句的意思是switch(..)括号中的参数必须要是一个常数,或者常数表达式 同样需要是常数的还有case后面

SWITCH 后面的"表达式", ANSI标准允许它为任何类型.


http://www./jgjs/picture/photos/html/10061.htm
2004-07-19 16:19
神vLinux飘飘
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:浙江杭州
等 级:贵宾
威 望:91
帖 子:6140
专家分:217
注 册:2004-7-17
收藏
得分:0 

是,没错,是允许为任何类型,但是必须要是一个确定的数或者一个值是确定的表达式

常数和数据的类型不是一个概念,请不要把常数、整数、实数等混在一起


淘宝杜琨
2004-07-19 17:01
编程白痴
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2004-5-28
收藏
得分:0 
呵呵   你好 大哥 能不能 给我解释一下 常数 和 常量还有变量的区别哦  谢谢!!!!
2004-07-19 18:17
神vLinux飘飘
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:浙江杭州
等 级:贵宾
威 望:91
帖 子:6140
专家分:217
注 册:2004-7-17
收藏
得分:0 

常数:就是不会改变的数.比如7就是一个常数,不管你在什么地方7就是7,不会改变

常量:常量也可以叫做常数,就是程序运行过程中值不会被改变的量.常量分有 整型常量 字符常量 实型常量 字符串常量.

变量:相反的,在程序运行过程中,值可以被改变的量就是变量啦.变量又可以分为 整型变量 实型变量 字符变量


淘宝杜琨
2004-07-19 19:11
jiely
Rank: 1
等 级:新手上路
帖 子:106
专家分:0
注 册:2004-5-15
收藏
得分:0 

#include "stdio.h" #define P printf #define S scanf

main() { int x,y; P("Please Input x="); S("%d",&x); if(x<0 && x!=-3) {y=x*x+2*x-6;} else if(x<10 && x!=2 && x!=3)//此处x>=0就没有必要了 { y=x*x-5*x+6;} else {y=x*x-x-15;} P("%d",y); }


我的爱好:C和数据库!正在学VC++ 我的QQ:345895839,有共同爱好的加我!期待着与你共同进步!
2004-07-19 22:36
卧龙先生
Rank: 1
等 级:新手上路
帖 子:77
专家分:0
注 册:2004-7-18
收藏
得分:0 
以下是引用神vLinux飘飘在2004-07-19 12:40:41的发言:

首先,我想说的是

#define p printf #define s scanf

你的这两句对我启发很大,谢谢,以后我就不用打这么多printf之类的了

然后,我们来解决问题

"需要用常量表达式 在函数" 这句的意思是switch(..)括号中的参数必须要是一个常数,或者常数表达式 同样需要是常数的还有case后面

"表达式语法错 在函数" 这句的意思是你的case后面的语句不是常量或者常量表达式

"case语句缺少':' 在函数" 系统认为你不是一个数~那系统就认为你是个字符,而字符必须是由' '括起来的,所以系统就认为你缺少了' ',其实这个是系统的误报,没什么用处。但一切错误都是你造成的,所以你要对她负责哦~

"重复的case 在函数"这个同上~也是误报,其实只要你修改好了,自然也就没了

下面是我的一个例子

#include <stdio.h> main() { int x; printf("\nPlease input a number:"); scanf("%d",&x); switch(x) { case 1:printf("I'm a Human player!");break; case 2:printf("I do this for Aiur!");break; case 3:printf("For the Lich King!");break; default:printf("I'm a Protoss player!"); } getch(); }

大哥哥分析的好详细啊,小弟是在是受益非浅啊。太感谢了!!!


我是一只小小小小菜鸟!!
2004-07-20 15:29
神vLinux飘飘
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:浙江杭州
等 级:贵宾
威 望:91
帖 子:6140
专家分:217
注 册:2004-7-17
收藏
得分:0 

我才19岁,别乱叫啊。这里不是谁厉害谁年龄大的哦(要不然斑竹们都老死啦)

我也只是比你先飞一步,曾经思考过;曾经失败过;曾经无奈过......但在斑竹tempnetbar的引导下,我重新走上正轨~哎~........我所做的只是希望比我还初学的兄弟们少走弯路

以后你还有什么问题,就来这个论坛问,相信大家一定会帮助我们这些“想要飞而飞不高”的人~~希望你也能推荐一些朋友来,让这里人气更加旺盛!

努力 奋斗

淘宝杜琨
2004-07-20 16:43
yms123
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:209
帖 子:12488
专家分:19042
注 册:2004-7-17
收藏
得分:0 
不过好像按规范来说还是写printf比较规范。
2004-07-21 23:01
快速回复:一个初级程序。希望指点啊
数据加载中...
 
   



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

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