首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >把一个数字放在一个空心的形状上

把一个数字放在一个空心的形状上
EN

Stack Overflow用户
提问于 2014-10-05 10:52:07
回答 1查看 111关注 0票数 0

我想把数字,可以是一,二,三,四等数字的形状。尽管如此,额外的空间还是会被移动。另外,中心移动了。我试着用不同的方法,但是,我不能。我怎么能解决这个问题。谢谢大家的回答。

输出示例是:http://i.stack.imgur.com/Kozr1.png

代码语言:javascript
复制
#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;
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-10-05 12:37:25

这应该管用!

它仍然有很小的误差,但我试图解决它。

代码语言:javascript
复制
/*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;
}
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26201895

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档