|
yangqiJul 29, 2014
1
....
无语了, if后面只能有一个else, 之前的用else if |
|
sy1989Jul 29, 2014
2
不用else if的话后面应该是一个包一个的
|
|
lighteningJul 29, 2014
3
90 < result >= 80
|
|
leavicJul 29, 2014
4
哥,能买本教材不?
|
|
yukirockJul 29, 2014 via iPhone
6
if (cond 1) {
} else if (cond 2) { } 注意花括号的位置。 另外 int main() 需要返回 0。 |
|
bomblessJul 29, 2014
7
看不懂提示至少能看懂行号吧…
|
|
8
|
|
iyaozhenJul 29, 2014
9
90 < result >= 80,不能这样用啊,不要想当然。还是4楼说的好,借本教材吧。
|
|
tjmaoJul 29, 2014
12
哥,能买本正规教材不?判断大小的表达式,如果区间的两边是有理数,你要拆成两个表达式中间用逻辑运算符连接起来的。
我照着词法分析器和语法分析器画三天瓢就知道怎么写代码了…… |
|
tjmaoJul 29, 2014
13
另外你这算法太烂,result/10, select...case就能完成的事情,写那么多表达式。第一个还写错了,运算符应该是>=。
|
|
TinetJul 29, 2014
15
大家就不要喷了
|
|
ifconfigJul 29, 2014
16
楼上不要太打击人,咱初中学C的时候还不是对着书一行行敲的,楼主多看书多动手就是了
|
|
icylogicJul 29, 2014
17
|
|
18
我一共就学习C的时间就不够两个星期 。 别怪我啊。
|
|
tonylujJul 29, 2014
21
BTW:看到LZ每行都有花括号,突然有Go的感觉
|
|
RHFSJul 29, 2014
23
90 < result >= 80
90 < result && result > 80 && result = 80 才对吧,然后别看谭浩强的书。 |
|
25
|
|
26
@Livid
https://gist.github.com/p0w3r-/e518ff71c6a9d68c3981 看上面我这个链接 , 用户ID 包括了 ” - " 这个符号会导致无法成功把代码发出来 ,算不算bug呢? |
|
acrosJul 29, 2014
27
想起我当年自学C++一个Hello World近十个error的年代,吓尿了···
|
|
zhujinliangJul 30, 2014 via Android
28
result < 90这个条件是没意义的,上面是result>= 90,不成立了,则进行else if条件的判断,已隐含此时值<90,同理后面的<80 <70
|
|
rentaroJul 30, 2014
29
return 0;
|
|
jetbillwinJul 30, 2014
30
我觉得要好好看看出错的信息,哪怕是英文的,配合着字典也能看懂的。现在的编译器都非常智能,基本上都能找到出错点,尤其是LLVM。所以,看懂编译器的出错信息非常有用。
|
|
31
|
|
RicepigJul 30, 2014
33
int main()
{ int result; scanf("%d",&result); int rank = 9 - result/10; if(rank < 0) { rank = 0; }else if(rank > 4){ rank = 4; } printf("%c/n", 'A'+rank); return 0 } 这样行吗? |
|
jesse_luoJul 30, 2014
34
lz期末考应该已经过了吧……
另外else if里貌似有一半不用写 |
|
tiooverJul 30, 2014
36
最近在用模式匹配,简化这些代码非常爽
|
|
em70Jul 30, 2014 via Android
37
编译错误看不懂不要紧,可以直接贴google搜索,解决方案马上就出来了,多几次就看懂了。
另外,程序员英语不需要多好,但至少有查字典阅读的程度 |
|
tjmaoJul 30, 2014 via iPhone
38
|
|
absconJul 30, 2014 via Android
39
附言1里的代码,if语句中所有的&&后面的判断是否小于的部分都是多余的,可以删掉。
你的失误在于把if else看成一堆状态的并行的**罗列**,而不是一个串行的**过程**。比如说,当你来到第一个else if的时候,result一定是<90的,否则就掉进前面那个if分支了。 秀个当年我同学的经典错误的简化版:变更字符串里的字母A的大小写状态,a换成A,A换成a。他是这么写的-- if( ch == 'a' ) ch = 'A'; if( ch == 'A' ) ch = 'a'; |
|
bomblessJul 30, 2014
40
一开始是这样的…照着书来看一下表达式是怎么构成的吧,初学的时候不要想当然。
|
|
lu18887Jul 30, 2014
42
楼主值得鼓励,不懂就问,没有错!不要气馁!
|
|
roychanJul 30, 2014
43
呃……为什么不用 switch 呢?
|
|
GeekerJul 30, 2014
45
很多人在不会的时候连问的勇气都没有!每个人都是这么过来的。加油
|
|
rulerstormJul 30, 2014
46
写得还可以啊,这明显是小朋友的炫耀贴~
|
|
frankzengJul 30, 2014
47
result >= 80 && result < 90 ,没这么写的啊,明显是result<90是多余的,你想啊,如果result=85,第一个判断肯定为假,第二个>=80就为真的,后面的&& result<90就是多余的
|
|
48
|
|
49
@frankzeng 原本是" result < 90 && result >= 80 " 这样子写的,然后编译出来结果不对就掉过来了,然后也没有想太多成立不成立,结果对就可以,然后就发上来了.
@rulerstorm 这算是损还是什么呢 ,^ ^ . |
|
ljcarsenalJul 30, 2014
51
@crab yuange真的已经达到十分吊的地步了嘛。。。。。不过他可真是毫不谦虚啊。。。那些大神也是一直吹捧他
|
|
C0VNJul 30, 2014
53
LZ web app都能写,这点C搞不定?
|
|
shawngaoJul 30, 2014
54
} else if ( result >= 80 && result < 90 ){
这个“ && result < 90 ”没必要吧 |
|
precisi0nuxJul 30, 2014
55
这样来问很浪费时间,不如找本正统的教材看。
|
|
kid177Jul 30, 2014
56
这样低级的错误,感觉还是LZ没有仔细去学吧。
不过也不能怪LZ,想当初我int main写成int mian硬是调了1个下午 |
|
auserJul 30, 2014
57
@yukirock 标准规定main函数可以不显示return的
C中的函数要是没有参数,建议加上void,例如: long random(void); 写成: long random() 这种形式编译器无法帮助检查错误的参数传递 吹毛求疵下: result是否应该有一个合理的范围呢?比如[0,100] 如果scanf时候输入了非法字符怎么办?[好多年没用过scanf这个函数了……这里楼主可以暂时先检查scanf的返回值] |
|
absconJul 30, 2014
58
@GPU 不是我的错误,是我同学的错误。错误不在于缺少花括号。如果你坚持要花括号的话我给你花括号。你看看,能看出错误在哪里不。看不出的话说明你的那个错误意识还没有纠正过来(代码是动态的过程,不是静态的状态)
#include <stdio.h> int main() { char ch; scanf( "%c",&ch ); if( ch == 'a' ) { ch = 'A'; } if( ch == 'A' ) { ch = 'a'; } printf( "%c\n", ch ); return 0; } |
|
sampengJul 30, 2014
60
你需要一本正规的教材。靠猜是没戏的
|
|
hcyJul 30, 2014
61
如果LZ一会反应不过来可以先这样写
#include <stdio.h> int main() { int result; scanf("%d",&result); if ( result >= 90 ){ printf("A\n"); } if ( result >= 80 && result < 90 ){ printf("B\n"); } if ( result >= 70 && result < 80 ){ printf("C\n"); } if ( result >= 60 && result < 70 ){ printf("D\n"); } if(result <60){ printf("E\n"); } return 0; } |
|
62
@abscon 我明白了 , 最后他还是输出一个 小写'a' .. 他应该在判断 是否等于 'A' 的那个if 前面添加一个else 就可以了.
@sampeng 真不是教材问题 我也有K&R 在哪里. @kid177 我看视频学的 .过后再看一次K&R . @xavierskip 我哪里会写Web App 了啦. |
|
gejigejiJul 30, 2014
63
要不LZ自杀呗
|
|
StackGaoJul 30, 2014
64
楼上心理有问题, 楼主不要介意.
|
|
hcyJul 30, 2014
65
看了下那个switch 我觉得LZ还是去弄本教材吧... 你输入个92之类参数再看看?
|
|
67
|
|
lemonlwzJul 30, 2014
70
很想知道楼今年贵庚
|
|
cassyfarJul 30, 2014 via iPad
71
lz这理解力肯定是来卖萌的
|
|
amonJul 30, 2014
72
不建议把这样的问题发到v2,v2的精神是explore。
可以考虑去相关的学习群或者bbs。 LZ加油:) |
|
tttwww18Jul 30, 2014
76
#include <stdio.h>
int main() { char* g="FFFFFFDCBAA"; int d; scanf("%d",&d); (d>=0 && d<=100)?printf("%c\n",g[d/10]):printf("Out of range"); return 0; } 这样写如何呢? |
|
w2angelJul 31, 2014 via Android
79
居然看到一个这样写的
90 < result && result > 80 && result = 80 麻烦不要误导别人好不好 |
|
HatMatrixJul 31, 2014
80
我怎么觉得你们都被楼主嫖了,都用github了不应该这个水平啊,你们说呢
|