我想把数字,可以是一,二,三,四等数字的形状。尽管如此,额外的空间还是会被移动。另外,中心移动了。我试着用不同的方法,但是,我不能。我怎么能解决这个问题。谢谢大家的回答。
输出示例是: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;
}发布于 2014-10-05 12:37:25
这应该管用!
它仍然有很小的误差,但我试图解决它。
/*Import*/
#include <stdio.h>
/*Function Prototyp*/
int countNumber(int number);
int main() {
/*Variable*/
int number, column, row;
int columnCount, rowCount;
int i;
printf("Enter column:\n>");
scanf("%d",&column);
printf("\nEnter row:\n>");
scanf("%d",&row);
printf("\nEnter number for center:\n>");
scanf("%d",&number);
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(number))/2;i++)
printf(" ");
printf("%d", number);
for (i = 0; i < ((row*2-3)-countNumber(number))/2;i++)
printf(" ");
if (countNumber(number % 2 == 0))
printf(" *");
else
printf("*");
break;
}
if (columnCount==0 || columnCount==column-1 || rowCount==0 || rowCount==row-1)
printf("* ");
else
printf(" ");
}
printf("\n");
}
return 0;
}
int countNumber(int number) {
int count;
for (count = 0; number > 0; count++)
number = number / 10;
return count;
}https://stackoverflow.com/questions/26201895
复制相似问题