請教一個C語言的問題



贊助商連結


wpeter
2005-02-12, 04:19 PM
#include<stdio.h>
int main(void)
{
int score;
scanf("%d",&score);
if("score>=80")
{
printf("優等");
}
else if(score>=60 && score<80)
{
printf("甲等");
} else {
printf("不及格");
}
}



#include<stdio.h>
int main(void)
{
int score;
scanf("%d",&score);
if("score<60")
{
printf("不及格");
}
else if(score>=60 && score<80)
{
printf("甲等");
} else {
printf("優等");
}
}


 如上面兩個程式碼,他們的判斷式應該是差不多吧∼可是為什麼上面的程式
碼可以正確的執行;而下面的程式碼卻不管輸入什麼數字都會輸出優等呢?

贊助商連結


darkwarrior
2005-02-12, 05:06 PM
if("score>=80") 跟 if("score<60")
這樣子傳進去的是啥阿....應該都變成if(TRUE)吧

你確定這樣子程式跑出來的所有值都是正確的嗎
還是你沒有把所有可能值都測試

寫C的程式要很小心...很容易錯在許多小地方喔

hyffdmy
2005-02-12, 05:32 PM
score設定是int資料型態
但在做判斷的時候怎麼會用if("score>=80")來做判斷呢?!
應該要把" "去掉
兩個程式都有點問題吧

TomX
2005-02-12, 06:10 PM
#include<stdio.h>
int main(void) {
int score;
while(scanf("%d",&score)==1) {
if(score>=80) {
printf("優等\n");
} else if(score>=60 && score<80) {
printf("甲等\n");
} else {
printf("不及格\n");
}
}
}

判斷式有問題...怎麼判斷字串呢?
可以連續測條...

wpeter
2005-02-12, 09:42 PM
 啊∼原來是這麼一回事,害我疑惑半天..........XD~以後寫程式一定要多注意啦∼