我使用了 Visual Studio。 该代码的目的是打印垂直读取接收到的字符排列时出现的值。
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(void) {
int i, j;
char a[5][15] = { 0, };
for (i = 0; i < 5; i++) {
for (j = 0; j < 15; j++) {
scanf("%c", &a[i][j]);
}
}
for (i = 0; i < 15; i++) {
for (j = 0; j < 5; j++) {
printf("%c", a[j][i]);
}
}
return 0;
}
输入
AABCDD
afzz
09121
a8EWg6
P5h3kx
预期输出
Aa0aPAf985Bz1EhCz2W3D1gkD6x
实际输出 -> 它不会打印任何内容。
我不知道为什么它不能达到我的目的。 请帮我解释一下。
您的代码将尝试填充 5x15 数组中的所有字符。一旦看到行尾字符,就需要停止填充行:
for (j = 0; j < 15; j++) {
char c;
scanf("%c", &c);
if (c == '\n')
break;
else
a[i][j] = c;
}
这只是为了让您开始。您应该调试代码并解决其他问题。