哈啦
2014-04-24, 10:39 PM
以下的程式是當使用者打一個字母之後,系統會輸出該字母相對應的ASKII碼值的*號。
程式如下:
#include <stdio.h>
int main(void)
{
int x,y;
char ch;
for(x=0;x<3;x++)
{
printf("\nenter a letter: ");
ch=getche();
printf("\n");
for(y=0;y<ch;y++)
printf("*");
}
return 0;
}
我的問題在於for(y=0;y<ch;y++) 中的y<ch。
因為我本來想ch是個char型別的值,而一般說什麼值都會打上' ' ,所以就打上 'ch' ,使這裡變成 y<'ch',結果程式跑出來後,*號一大堆比原本正確答案多出好幾倍?
我後來想一想,是否'ch'有上引號就變成了 c和h兩個字母的意思?而非原先變數ch的意思?所以'ch'等於是把 c+h 的askii碼?
thanks.
程式如下:
#include <stdio.h>
int main(void)
{
int x,y;
char ch;
for(x=0;x<3;x++)
{
printf("\nenter a letter: ");
ch=getche();
printf("\n");
for(y=0;y<ch;y++)
printf("*");
}
return 0;
}
我的問題在於for(y=0;y<ch;y++) 中的y<ch。
因為我本來想ch是個char型別的值,而一般說什麼值都會打上' ' ,所以就打上 'ch' ,使這裡變成 y<'ch',結果程式跑出來後,*號一大堆比原本正確答案多出好幾倍?
我後來想一想,是否'ch'有上引號就變成了 c和h兩個字母的意思?而非原先變數ch的意思?所以'ch'等於是把 c+h 的askii碼?
thanks.