L1-039 古风排版
1.思路
1.先根据输入的数,确定字符的行数和列数
2.再通过for循环的方法,将字符输入二维数组中
3.其中使用了metset(a,’\0’,sizeof(a)) 就是把二维数组用空格填充
4.getchar() :在整数N后默认有个‘\n’,当输入一个数字,然后getchar()函数终止,再进入gets(s)
2.getchar()
使用getchar()时,在键盘上按一个字符后,要按回车才能读取进去
3.源码
#include<stdio.h>
#include<string.h>
int main()
{
char a[105][105];
memset(a,' ',sizeof(a)) ;//将二维数组用空格填充
int n,i,j,m=0;
int k=0;//计数器
scanf("%d",&n);
getchar();
char s[1005];
gets(s);//可以接受含有空格的字符串
//scanf("%[^\n]",s)与gets(s)具有相同的效果 ,详见附图一
int len=strlen(s);
m=len/n+(len%n ? 1 : 0 );//求二维数组的所需列数
for(i=m-1;i>=0;i--)
{
for(j=0;j<n;j++)
{
if(k==len) break;
a[j][i]=s[k++];
}
if(k==len) break;
}
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
{
printf("%c",a[i][j]);
}
printf("\n");
}
return 0;
}