题目描述:
打印图形:分别输入整数n、整数m和一个字符串str,要求重复打印str共m次,打印时每行字符个数为n,并在方阵每行开头输出当前行号,行号部分(行号加冒号)占四个字符宽度并靠右对齐(行号部分不占用每行打印的字符个数),如下所示。
输入:
9
5
Computer
输出:
[空格][空格] 1:ComputerC
[空格][空格] 2:omputerCo
[空格][空格] 3:mputerCom
[空格][空格] 4:puterComp
[空格][空格] 5:uter
测试用例:
测试输入 | 期待的输出 | 时间限制 | 内存限制 | 额外进程 | |
---|---|---|---|---|---|
测试用例 1 | 以文本方式显示
| 以文本方式显示
| 1秒 | 64M | 0 |
测试用例 2 | 以文本方式显示
| 以文本方式显示
| 1秒 | 64M | 0 |
测试用例 3 | 以文本方式显示
| 以文本方式显示
| 1秒 | 64M | 0 |
测试用例 4 | 以文本方式显示
| 以文本方式显示
| 1秒 | 64M | 0 |
测试用例 5 | 以文本方式显示
| 以文本方式显示
| 1秒 | 64M | 0 |
测试用例 6 | 以文本方式显示
| 以文本方式显示
| 1秒 | 64M | 0 |
代码实现:
#include<stdio.h>
#include<string.h>
int main()
{
int n,m;
char ch[100]="";
scanf("%d",&n);
scanf("%d",&m);
getchar();
gets(ch);
int len=strlen(ch);
int lens=len*m;
int i,j;
int num=1;
for(i=0;i<lens;i++)
{
if(i%n==0)
{
printf("%3d:",num++);
}
printf("%c",ch[i%len]);
if(i%n==n-1)
{
printf("\n");
}
}
return 0;
}