我想把数字,可以是一个,两个,三个,四个等数字的形状。尽管如此,额外的空间已经转移。此外,中心转移。我尝试不同的方式,但是,我不能。我该如何解决这个问题。谢谢你所有赞赏的答案。把一个数字放在一个空心的形状
输出的例子是: http://i.stack.imgur.com/Kozr1.png
#include <stdio.h>
/* Function Prototypes */
int countNumber(int number);
int main() {
int n; /* number to put in the center of the shape */
int column, row; /* take values of column and row via user */
int columnCount, rowCount; /* count number of column and row */
int i; /* count how many spaces remained */
printf("Enter column:\n>");
scanf("%d",&column);
printf("\nEnter row:\n>");
scanf("%d",&row);
printf("\nEnter number for center:\n>");
scanf("%d",&n);
if((10<column && column<40) && (10<row && row<40)){
for (columnCount = 0; columnCount < column; columnCount++) {
for (rowCount = 0; rowCount < row; rowCount++) {
/* Middle Row */
if (columnCount == column/2) {
printf("#");
for (i = 0; i < ((row*2-3)-countNumber(n))/2;i++)
printf(" ");
printf("%d", n);
for (i = 0; i < ((row*2-3)-countNumber(n))/2;i++)
printf(" ");
printf("#");
break;
}
if (columnCount==0 || columnCount==column-1 || rowCount==0 || rowCount==row-1)
printf("# ");
else
printf(" ");
}
printf("\n");
}
}
else
printf("Please enter value btw 10-40");
return 0;
}
/* Function */
int countNumber(int number) {
int count;
for(count=0;0<number;count++) /* the number how many decimal places have */
number/=10;
return count;
}
请添加纯文本输出这样在您的文章。把它作为图像不会增加任何有用的东西。 – usr2564301 2014-10-05 11:08:31
trivally可调试。不要告诉我你不知道是什么原因造成的。 – 2014-10-05 11:08:33
注意:'column' as * outer * loop没有任何意义。 – 2014-10-05 11:11:12