剛剛開始Java的第一年C後,我已經感到困惑。我嘗試將數組打印到乘法表中。它可以正常工作,但是在第一輪打印數組後,我得到了零。我已經在整個數組中分配了數據,並且在檢查後循環了正確的數量。仍然在第一個打印線後,我得到0 0 0 0 0 0 0在正確的輸出後。在C中打印時出現奇怪的輸出
#include<stdio.h>
int main(void)
{
int kertotaulu[15] = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
int kertoja;
int indeksi;
for(kertoja = 0; kertoja <=15; kertoja++) {
if(kertoja == 0) {
printf("x");
printf(" ");
for(indeksi = 0; indeksi< (sizeof(kertotaulu)/sizeof(kertotaulu[0])); indeksi++) {
printf("%d", kertotaulu[indeksi]);
printf(" ");
}
}
for(indeksi = 0; indeksi< (sizeof(kertotaulu)/sizeof(kertotaulu[0])); indeksi++) {
printf("%d", kertotaulu[indeksi]*kertoja);
printf(" ");
}
printf("\n");
}
return 0;
}
,輸出是:
x 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
2 4 6 8 10 12 14 16 18 20 22 24 26 28 30
3 6 9 12 15 18 21 24 27 30 33 36 39 42 45
4 8 12 16 20 24 28 32 36 40 44 48 52 56 60
5 10 15 20 25 30 35 40 45 50 55 60 65 70 75
6 12 18 24 30 36 42 48 54 60 66 72 78 84 90
7 14 21 28 35 42 49 56 63 70 77 84 91 98 105
8 16 24 32 40 48 56 64 72 80 88 96 104 112 120
9 18 27 36 45 54 63 72 81 90 99 108 117 126 135
10 20 30 40 50 60 70 80 90 100 110 120 130 140 150
11 22 33 44 55 66 77 88 99 110 121 132 143 154 165
12 24 36 48 60 72 84 96 108 120 132 144 156 168 180
13 26 39 52 65 78 91 104 117 130 143 156 169 182 195
14 28 42 56 70 84 98 112 126 140 154 168 182 196 210
15 30 45 60 75 90 105 120 135 150 165 180 195 210 225
你試過調試嗎? –
'kertotaulu'數組是奇特的;你真的不需要它。然後在主循環外打印標題行,然後只需在循環中打印索引1..15(含)的行。這裏有更多的代碼比真正需要的。對齊也是扭曲的;使用'%3d'而不是'%d'。使用兩個連續的'printf()'語句是毫無意義的 - 'printf(「%3d」,...)'會在一箇中完成這項工作。您還需要考慮輸出的對齊。由於有一個乘數爲1的列,您可能需要打印行號,以便第一個值在每行中出現兩次。 –
嘗試:'#include int main(void) { int max = 15; printf(「%2s」,「x」); (int i = 1; i <= max; i ++) printf(「%3d」,i); putchar('\ n'); (int i = 1; i <= max; i ++) { printf(「%2d」,i); (int j = 1; j <= max; j ++) printf(「%3d」,i * j); putchar('\ n'); } return 0; }' –