代码的要点是创建由用户设置的二维维度数组。被提示输入宽度和高度后,用户必须将值存入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