为什么这个C代码没有工作?

时间:2016-09-22 19:24:03

标签: c numbers printf

我正在尝试打印数字模式。尝试使用输入20运行此代码,您会看到标签空间都在错误的位置,他们不遵循命令。我知道标签空间跳转到下一个标题,但有没有办法避免它?

#include <stdio.h>

int main()
{
    int i, n, count = 0;
    scanf("%d", &n);
    for(i = 1; i <= n; i++)
    {
        printf("%dnumber\t", i);
        count++;
        if(count == 4)
        {
            count = 0;
            printf("\n");
        }
    }
    return 0;
}

注意:有没有办法只使用制表符空格(例如,&#34; \ t&#34;而不是使用普通的空格)。

这是我得到的输出。

enter image description here

但我想要的是这个

enter image description here

2 个答案:

答案 0 :(得分:4)

这里有几个不同的问题。

但听起来你的主要问题是“gee:标签不符合我的预期。”

建议替代方案:

考虑在printf()中使用“字段长度说明符”:

http://www.cplusplus.com/reference/cstdio/printf/

实施例

printf ("%-20s", mystring);  // Will always be exactly 20 characters
printf ("%06d", myint);  // 6-digits, zero filled

答案 1 :(得分:1)

为什么不:

#include <stdio.h>

int main( void )
{
    int i = 0;
    int n = 0;

    scanf( "%d", &n );

    for( i = 1; i <= n; i++ )
    {
        printf( "%02dnumber\t", i );

        if( i % 4 == 0 )
            printf("\n");
    }

    return 0;
}

输出:

16
01number    02number    03number    04number    
05number    06number    07number    08number    
09number    10number    11number    12number    
13number    14number    15number    16number    

希望它有所帮助!