|
![]() | 作者: TGV_Mic [tgv]
![]() |
登录 |
│#include <math.h> │main() │{ │int a,b=50,c; │scanf("%d",&a); │if (a<=b) c=80; │else (a>b) c=90; │printf("c=%d\t",c); │} 怎么老说我的b没有定义哪? 你能看出来我那里错了吗? |
地主 发表时间: 04-10-06 11:18 |
![]() | 回复: TomyChen [quest] ![]() |
登录 |
在C语言中应该严格遵守,“先定义,后赋值”这个定律。 int a,b=50,c; 你赋值后,编译器认为你的声明过程完了,而后你又来一个 c所以...,但有些编译器是不会报错的,例如LCC。 改成 int a ,b ,c b = 50 .... |
B1层 发表时间: 04-10-06 11:27 |
![]() | 回复: TecZm [teczm] ![]() |
登录 |
如果这样写:行不? int a,c,b=50; 若还有d=60 可否写成 int a,c,b=50,d=60 还是应该写成 int a,c,b,d; b=50,d=60; |
B2层 发表时间: 04-10-06 11:48 |
![]() | 回复: TGV_Mic [tgv] ![]() |
登录 |
这就奇怪了~ 谭浩强的c程序设计第二版中53页说“c允许再定义变量的同时使变量初始化” 那看我上面的代码,我在定义b是整形的同时也作了初始化呀~ |
B3层 发表时间: 04-10-06 11:51 |
![]() | 回复: TGV_Mic [tgv] ![]() |
登录 |
int a=3; 相当于: int a; a=3; 如果对几个变量赋予初值3,应该写成 int a=3,b=3,c=3; [此贴被 TGV_Mic(tgv) 在 10月06日11时55分 编辑过] |
B4层 发表时间: 04-10-06 11:52 |
![]() | 回复: TecZm [teczm] ![]() |
登录 |
TomyChen [quest] -------------------------------------- 你赋值后,编译器认为你的声明过程完了... -------------------------------------- int a=30,b=40,c=60; 这样的赋值应该也是可以的吧。 |
B5层 发表时间: 04-10-06 12:15 |
![]() | 回复: yuanrulai [yuanrulai] ![]() |
登录 |
#include <math.h> main() { int a,b=50,c; scanf("%d",&a); if (a<=b) c=80; else (a>b) c=90; /////////////////////////这个地方(a>b)是多余的 printf("c=%d\t",c); } 我用的是windows xp +win-tc 将上面的修改之后,结果出来了。 有的时候编译器的出错信息并不是真正的出错的原因 一般编译不能通过主要是语法不够熟练, [此贴被 排山倒海(yuanrulai) 在 10月06日15时34分 编辑过] |
B6层 发表时间: 04-10-06 15:14 |
![]() | 回复: TomyChen [quest] ![]() |
登录 |
挑我语病,小心我咬你 一般而言在 int a,b,c;这样是一个声明过程 int a,b=50,c;//b=50这不是初始化,而被编译器认为是一个赋值过程了(我是这么认为的) 就像 代码: 像上述代码是无法通过编译的。 而老谭所说的“C允许在定义变量的同时使变量初始化”与“赋值过程”应该还是有所区别吧,我是这么理解的。 |
B7层 发表时间: 04-10-06 15:18 |
![]() | 回复: TGV_Mic [tgv] ![]() |
登录 |
谢谢楼上各位指点啦~ 排山倒海你说的我明白啦~ 对于那种非此即彼的问题不需要重复限定,else的意思就是>50呀~ ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
B8层 发表时间: 04-10-06 18:05 |
![]() | 回复: authen [authen] ![]() |
登录 |
TomyChen: int a,b,c=50是变量初始化 若拆开成 int a,b; int c=50; //这句应该算赋值过程吧 两者没什么不同吧。 btw:有空来西安请你咬肉夹馍 ![]() |
B9层 发表时间: 04-10-08 08:16 |
![]() | 回复: apollomz [apollomz] ![]() |
登录 |
#include <math.h> main() { int a,b=50,c; scanf("%d",&a); if (a<=b) c=80; else c=90; printf("c=%d\t",c); } 你的判断上出了问题。注意看ELSE后面 |
B10层 发表时间: 04-10-08 15:52 |
![]() | 回复: TGV_Mic [tgv] ![]() |
登录 |
西安的兄弟们好呀!我也是西安的! 再给你们出道题 #include <math.h> main() { int a,b,c; scanf("%d,%d",a,b); if (a>=100&&b>=100) printf("big"); else {c=a*b};printf("%d",c); } 上面的代码我想实现的是:计算两个数相乘,输出结果 ,但一定要是两个100以下的数,否则输出超出范围 ,我写的代码有问题,你来改改吧~! 西安的兄弟到底有多少啊~来签个名吧 ! ![]() ![]() [此贴被 TGV_Mic(tgv) 在 10月08日21时28分 编辑过] |
B11层 发表时间: 04-10-08 21:27 |
![]() | 回复: TGV_Mic [tgv] ![]() |
登录 |
学c一个月了~感觉c挺好的 ~ 其实是我喜欢那种感觉,我的问题一般都很幼稚 ,千万别笑 |
B12层 发表时间: 04-10-08 21:30 |
![]() | 回复: TomyChen [quest] ![]() |
登录 |
RE:野猪 有个笔误,明天再跟你说,太晚了,明天还要上班 楼 主的 代码: 短短几行代码,几乎行行出错,不知道真为初学,还是故意这样子:( 而且代码可读性很低(如果是初学的话) 像 if (a>=100&&b>=100) printf("big"); else {c=a*b}; 这样的格式十分不好,即很容易造成else {c=a*b};(类似这个)的错误 当然,你如果是老鸟又另当别论,呵呵,回完,关机睡觉...明天接着讨论第一个问题(本来我写了一半的,但太累了,眼花,写不下去-_-!!! |
B13层 发表时间: 04-10-09 01:18 |
![]() | 回复: 286 [unique] ![]() |
登录 |
强烈支持 [color=blue]唐米陈。 他说的也正是我想要说的,作为初学者,代码可读性强与否将影响你以后的编程,所以强烈建议大家学习的时候不要去随意写可读性极差的程序,另外建议初学者学会写注释,尽管你的程序你都能看懂。[/color] |
B14层 发表时间: 04-10-09 08:46 |
![]() | 回复: lida1818 [lida1818] ![]() |
登录 |
void main() { int a; int b = 50; int c; printf("%d\n",b); } 如上程序在语法并无问题,通不过是你的编译器“要求”太严了吧 ![]() |
B15层 发表时间: 04-10-09 09:15 |
![]() | 回复: TecZm [teczm] ![]() |
登录 |
收到!收藏!![]() 记得N年前英语老师说的:"句子越简单,出错的可能越少"。 btw: 野猪[authen]==TecZm ![]() |
B16层 发表时间: 04-10-09 09:55 |
![]() | 回复: yingzike [yingzike] ![]() |
登录 |
谁能不犯错误呀 关键呢要知错就改呢 呵呵 ================================================================= if (a>=100&&b>=100) printf("big"); else {c=a*b}; 这样的格式十分不好,即很容易造成else {c=a*b};(类似这个)的错误 ================================================================= 要改这个错误嘛,初学者(当然我也是了 ![]() ![]() else {c=a*b}; --> else { c=a*b;};;;; 记得多加分号,多加可以(不要加N个,不好玩),少加就不行了 ![]() ![]() ![]() |
B17层 发表时间: 04-10-09 11:31 |
![]() | 回复: TGV_Mic [tgv] ![]() |
登录 |
明白了! 我在网吧看到论坛有个程序,突然自己兴趣来了,就变化了一下思路,想用一用自己学的知识,所以写的仓促了许多,小问题也就很多,各位见笑~, 我突然有种感觉,c程序是很严谨的一门技术,容不得自己半点想入非非,否则一定学得一塌糊涂,c语言确实令我着谜,所以,我要一丝不苟啦~ 总结以下,一 :写代码要注意格式,可读性要强,让别人和自己都要看懂。 二 :要学会注释,帮助自己理清思路。 三 :编程时千万不要自我佩服,以免手指飘飘,错误多多。 ![]() |
B18层 发表时间: 04-10-10 19:30 |
|
20CN网络安全小组版权所有
Copyright © 2000-2010 20CN Security Group. All Rights Reserved.
论坛程序编写:NetDemon
粤ICP备05087286号