代碼的要點是創建由用戶設置的二維維度數組。被提示輸入寬度和高度後,用戶必須將值存入char
到2D陣列的每個位置。當使用int
:(int mat,int value)實現時,算法工作正常,但是當試圖用char(char mat,char值)實現時,輸出與整數版本不一致。唯一的變化是數組和值的類型,以及將scanf/printf("%d")
設置爲scanf/printf("%c)
。任何你可以用字符實現這個二維數組的方法?如何用C中的字符填充二維數組?
#include <stdio.h>
int main() {
int width;
int height;
printf("Enter col and row values between 2 and 20.\n");
scanf("%d %d", &width, &height);
printf("The numbers you typed was %d %d\n", width, height);
char mat[height][width];
int i;
int j;
char value;
for (i = 0; i < height; i++) {
for (j = 0; j < width; j++) {
printf("Enter your value.\n");
scanf("%c", &value);
mat[i][j] = value;
}
}
for (i = 0; i < height; i++) {
for (j = 0; j < width; j++) {
printf("%c", mat[i][j]);
}
printf("\n");
}
return 0;
}
或者使用'scanf(「%c」,...)'。但是,當然,這可以防止實際插入任何空白字符,如果這是可取的... – twalberg
'do' /'while'循環是假的。你可以先用'scanf(「%* [\ r \ n]」)忽略掛起的換行符;'然後用'value =''讀取char; scanf(「%c」,&value);' – chqrlie