题目:把你输入的内容顺时针旋转90°
分析:二维数组 输出
注意:此题末尾不用管输出格式的。即一行末尾不用考虑空格,见代码二AC了。(当然,我不是十分确定代码一这种末尾没有空格的,是否真的没有空格,忌惮自己没考虑到一些情况)
代码一 c++ codeblocks c++
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int if_longer(int length[],int line);
int main()
{
char a[100][100]={0};int length[100]={0};
int k=0;int max_line=0;
while(gets(a[k])!=NULL)
{
length[k]=strlen(a[k]);
if(strlen(a[k])>max_line)
{
max_line=strlen(a[k]);
}
k++;
}
for(int j=0;j<max_line;j++)
{
for(int i=k-1;i>=0;i--)
{
if(a[i][j]==0)
{
if(if_longer(length,i)) printf(" ");
else break;
}
else
printf("%c",a[i][j]);
}
printf("\n");
}
}
int if_longer(int length[],int line)
{
for(int i=line-1;i>=0;--i)
{
if(length[line]<length[i])
{
return 1;
}
}
return 0;
}
代码二 codeblocks c++
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int main()
{
char a[100][100]={0};int length[100]={0};
int k=0;int max_line=0;
while(gets(a[k])!=NULL)
{
length[k]=strlen(a[k]);
if(strlen(a[k])>max_line)
{
max_line=strlen(a[k]);
}
k++;
}
for(int j=0;j<max_line;j++)
{
for(int i=k-1;i>=0;i--)
{
if(a[i][j]==0)
{
printf(" ");
continue;
}
else
{printf("%c",a[i][j]);}
}
printf("\n");
}
}