介绍
有多个输入测试用例,每个用例一行,是一个1-9的整数,输入为0则结束。请输出一个数字塔,若输入是3,则输出的数字塔为:
1
222
33333
分析
用n记录行数,每行的空格是n-i个,i为当前行的数字值,数字数位2*i-1。
代码
#include<stdio.h>
#include<stdlib.h>
int main()
{
int n;
while(scanf("%d",&n),n)
{
int i=1;
int count=n;
while(1)
{
for(int j=0;j<n-i;j++)
printf(" ");
for(int k=0;k<2*i-1;k++)
printf("%d",i);
i++;
count--;
printf("\n");
if(!count)
break;
}
}
system("pasue");
return 0;
}
{
int n;
while(scanf("%d",&n),n)
{
int i=1;
int count=n;
while(1)
{
for(int j=0;j<n-i;j++)
printf(" ");
for(int k=0;k<2*i-1;k++)
printf("%d",i);
i++;
count--;
printf("\n");
if(!count)
break;
}
}
system("pasue");
return 0;
}
遇到的问题
scanf()函数返回成功赋值的数据项数,出错时则返回EOF。实际上 EOF 的值通常为 -1,但它依系统有所不同。