|
藍森林 http://www.lslnet.com 2006年6月6日 10:18
ascii表的後面為什麼會有........我搞不懂
這條題的程序要輸入一些字符,然後把字符,和對應的ascii碼以表的形式輸出,
我做出來後,輸出的前面都還正常,但是在表的最後面總要輸出些莫名其妙的東西,用vc編譯是輸出一個很大的整數,用tc編譯是多加一個字符。
這到底是怎麼回事, 到底是那裡搞錯了?
[code]
#include <stdio.h>;
#define MAXGET 50
main()
{
int c, i, j;
int a[MAXGET];
i = 0;
while ( (c = getchar()) != EOF ) {
a[i] = c;
i++;
}
printf("\n");
printf("A ascii table\n");
for ( j = 0; j <= i; ++j ) {
printf("%5c %5d,", a[j], a[j]);
if ( (j % 5) == 4 ) /* the condition of print "\n" */
printf("\n");
}
}[/code]
執行後
abcdefg
a 97, b 98, c 99, d 100, e 101
f 102, g 103 -858993460 最後這個數字是怎麼出來的
而且用tc編譯出來的不同,是多加一個字符 |
ascii表的後面為什麼會有........我搞不懂
我覺得是你的for循環的範圍有問題,應該是 for ( j = 0; j <i; ++j )
你可以數數,是輸入了幾個字符,輸出又是幾個字符(你最好輸入的文件結束符不能算的,因為它根本沒有存入你定義的數組中)。
不知道正確不,你試試 |
ascii表的後面為什麼會有........我搞不懂
好像你下面for裡面的j<=i是有問題的,應該去掉等號
[quote="wang_yao"]
(for j=0;j<=i;j++)
[/quote]-->--> |
ascii表的後面為什麼會有........我搞不懂
實際上是多執行了一次,最後一次的printf打印結果是不可預料的。 |
ascii表的後面為什麼會有........我搞不懂
謝謝 |
| |