C语言输出问题求助
要输出:1
121
12321
121
1
输入的行数要可以使自己设的,也就是中间的那个字,这里是3,那么就输出2*3-1行。
我以前看过一个方法可使给忘了……求大家帮个忙。(记得是用负数然后加绝对值的。)
求求各位大侠了……
程序代码:void main(void)
{
int n = 0,m = 0;
int i =1,j =1,k = 0;
printf("请输入数字:\n");
scanf("%d",&n);
m = n;
for (i = 1; i <= n; i++)
{
for (k = 1; k <= n-i; k++)
printf(" ");
for (j = 1; j <= i; j++)
printf("%d",j);
j--;
while (--j)
printf("%d",j);
printf("\n");
}
while (--n)
{
for (k = 1; k <= i-n-1; k++)
printf(" ");
for (j = 1; j <= n; j++)
printf("%d",j);
j--;
while (--j)
printf("%d",j);
printf("\n");
}
}我只是按照最简单的思路写的里面很多代码一样你自己组织一下吧,结果正确,你自己做的时候也就会理解了怎么做的
程序代码:void main(void)
{
int n = 0,m = 0;
int i =1,j =1,k = 0;
printf("请输入数字:\n");
scanf("%d",&n);
m = n;
for (i = 1; i <= n; i++)
{
for (k = 1; k <= n-i; k++)
printf(" ");
for (j = 1; j <= i; j++)
printf("%d",j);
j--;
while (--j)
printf("%d",j);
printf("\n");
}
while (--n)
{
for (k = 1; k <= i-n-1; k++)
printf(" ");
for (j = 1; j <= n; j++)
printf("%d",j);
j--;
while (--j)
printf("%d",j);
printf("\n");
}
}我只是按照最简单的思路写的里面很多代码一样你自己组织一下吧,结果正确,你自己做的时候也就会理解了怎么做的
程序代码:#include <stdio.h>
int main(void)
{
int count = 0;
int i = 0;
int value = 0;
int j = 0;
int space_count = 0;
/* Input */
printf("Please:");
scanf("%d",&count);
/* 递增输出 */
for(i=1;i<=count;i++)
{
/* 输出空格 */
for(space_count=0;space_count<=(count*2)-i;space_count++)
printf(" ");
/* 输出递增部分 */
for(j=1;j<=i;j++)
printf("%2d",j);
/* 输出反向部分 */
for(j=i-1;j>0;j--)
printf("%2d",j);
printf("\n");
}
/* 反向输出 */
for(i=count-1;i>0;i--)
{
/* 输出空格 */
for(space_count=0;space_count<=count*2-i;space_count++)
printf(" ");
for(j=1;j<=i;j++)
printf("%2d",j);
for(j=i-1;j>0;j--)
printf("%2d",j);
printf("\n");
}
printf("\n\n");
return 0;
}
