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; }