#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main()
{
char s[105][105];
int len=0;
int maxn=0;
int i,j,a;
for(i=0;i<105;i++)
for(j=0;j<105;j++)
s[i][j]='\0';
while(gets(s[len]))
{
len++;
a=strlen(s[len-1]);
if(a>maxn)
maxn=a;
}
// printf("%d",len);
for(i=0;i<maxn;i++)
{
for(j=len-1;j>=0;j--)
{
if(s[j][i]=='\0'&&j!=0)
printf(" ");
else
printf("%c",s[j][i]);
}
printf("\n");
}
return 0;
#include<string.h>
#include<stdlib.h>
int main()
{
char s[105][105];
int len=0;
int maxn=0;
int i,j,a;
for(i=0;i<105;i++)
for(j=0;j<105;j++)
s[i][j]='\0';
while(gets(s[len]))
{
len++;
a=strlen(s[len-1]);
if(a>maxn)
maxn=a;
}
// printf("%d",len);
for(i=0;i<maxn;i++)
{
for(j=len-1;j>=0;j--)
{
if(s[j][i]=='\0'&&j!=0)
printf(" ");
else
printf("%c",s[j][i]);
}
printf("\n");
}
return 0;
}
这题错了好多次,最后还一直PE,后来发现:
#include<string.h>
#include<stdio.h>
int main()
{
char s[100][100];
int len=0;
while(gets(s[len]))
{
len++;
}
printf("%d",len);
} 和#include<string.h>
#include<stdio.h>
int main()
{
char s[100][100];
int len=0;
while(gets(s[len++]));
printf("%d",len);
}
#include<stdio.h>
int main()
{
char s[100][100];
int len=0;
while(gets(s[len]))
{
len++;
}
printf("%d",len);
} 和#include<string.h>
#include<stdio.h>
int main()
{
char s[100][100];
int len=0;
while(gets(s[len++]));
printf("%d",len);
这俩种方式的输入后面那个len竟然比前面那个len多1;
另外此题注意题的最后一句话,所以应该把字符串数组全部初始化。
此外注意把结束符‘\0',以及结束符后面的转化为空格