標題:

c 語言入面 switch - case

發問:

void main(){char subject;printf("Enter a subject: ");scanf("%c ",&subject);switch(subject){case'M ':printf( " Maths\n");break;case'E ':printf( " Eng\n");break;case'C ':printf(... 顯示更多 void main() { char subject; printf("Enter a subject: "); scanf("%c ",&subject); switch(subject) { case'M ':printf( " Maths\n");break; case'E ':printf( " Eng\n");break; case'C ':printf( " Chin\n");break; default:printf( "others\n"); } system("PAUSE"); } 入面果度話輸入"M"就會出現Maths 咁如果輸入"M,K "先會出現Maths咁樣GA話要點改AR 更新: http://hk.knowledge.yahoo.com/question/?qid=7006110203667(呢個網址入面GA)

最佳解答:

免費註冊體驗

 

此文章來自奇摩知識+如有不便請留言告知

switch ... case 語法只適用於單值 (single value) 上。如果你要比較的值是一段 string (即 char array) 就要用 if ... else 語法了。 其實如果需要由多過一個 char 去決定,你 input 的方法都要改。 另外,可以使用 strcmp 來比較 string (char array)。 strcmp(char* a, char* b) a 是第一個 char pointer b 是第二個 char pointer return values 如果是 > 0 就表示 a > b,如果 = 0 就表示 a = b,如果 < 0 就表示 a < b。所以現在要使用 = 0 的情況。 void main() { char subject[1000]; //assume the input is of max. 1000 characters printf("Enter a subject: "); gets(subject); //gets is to get the whole line of characters if(strcmp(subject, "M,K ") == 0) { printf( " Maths "); } else if(strcmp(subject, "E ") == 0) { printf( " Eng "); } else if(strcmp(subject, "C ") == 0) { printf( " Chin "); } else { printf(" Others "); } system("PAUSE"); }

其他解答:
arrow
arrow

    香港介紹ppt 發表在 痞客邦 留言(0) 人氣()