我不知道為什么 # 在 'u' 之后應該繼續的時候走錯了行
#include <stdio.h>
#define LEN 5
int inputNumber() {
int size;
printf("Input Size: ");
scanf("%d",&size);
printf("===\nTriangle Size is %d\n===\n",size);
return size;
}
void printTriangle(int size, char ch[]) {
for(int i = 0; i < size; i )
{
for(int j = 0; j <= i; j )
{
if(j<=LEN)
printf("%c ",ch[j]);
if(j>LEN)
printf("# ");
}
printf("\n");
}
}
int main() {
char arr_char[LEN] = {'a','e','i','o','u'};
int number;
number = inputNumber();
printTriangle(number,arr_char);
return 0;
}
我以前曾問過同樣的代碼,但我想嘗試使用 if-else 而不是 ? : 因為我還沒有在課堂上學過,所以我想知道是否可以使用 if-else 這樣的基本東西。

uj5u.com熱心網友回復:
您的代碼具有未定義的行為,因為您試圖訪問arr_char此 if 陳述句中宣告的陣列之外的記憶體
if(j<=LEN)
printf("%c ",ch[j]);
陣列的有效索引范圍是[0, LEN )。
您需要重寫 if 陳述句,如
if(j < LEN)
printf("%c ",ch[j]);
從輸出圖片中可以看出,在陣列之后的位元組中似乎以這樣一種方式存盤了換行符'\n'。
a e i o u
a e i o u
a e i o u
#
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/370400.html
