"R
Ie
n
te
h
iD
ne
kc
,a
r
tt
he
es
r
eo
fn
oc
re
e
s
Ia
i
ad
m,
.
"
Language:C++ 4.8.2
#include<stdio.h> #include<string.h> #define MAXN 100+10 char str[MAXN][MAXN]; int main(void) { memset(str, 0, sizeof(str)); int count = 0; while(fgets(str[count], MAXN, stdin) != NULL) count++; // 程序执行到这里,count代表读入句子的个数 int max_length = 0; for(int i = 0; i < count; i++) { int length = strlen(str[i]); if(max_length < length) max_length = length; } max_length--; // 没有这一行的话,程序WA,这是由fgets的特性决定的,因为在我们开的空间足够大的情况下,字符串会以‘\n‘和‘\0‘结尾。 int row, col; for(row = 0; row < max_length; row++) { for(col = 0; col < count; col++) { int ch = str[count-1-col][row]; if(ch == ‘\0‘ || ch == ‘\n‘) putchar(‘ ‘); else putchar(ch); } putchar(‘\n‘); // 注意:如果该行前加语句if(row != max_length -1),也会WA,个中缘由自己体会吧。 } return 0; } PS:开始理解错题意了,以为每行的输入字符个数是递增的,导致一直A不了。
时间: 2024-11-21 05:26:46