Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在C中每行打印x个整数?_C_While Loop - Fatal编程技术网

如何在C中每行打印x个整数?

如何在C中每行打印x个整数?,c,while-loop,C,While Loop,如何使用while循环和计数器变量x打印从1到20的整数 我每行只需要打印五个整数。[提示:使用计算x%5。当该值为0时,打印换行符\n,否则打印制表符\t] 我的主要问题是:如何每行打印5个整数 这是我尝试过的代码 #include<stdio.h> int main ( void ) { int x = 0; while ( x <= 20 ) { printf("%d", x); ++x;

如何使用while循环和计数器变量x打印从1到20的整数

我每行只需要打印五个整数。[提示:使用计算x%5。当该值为0时,打印换行符\n,否则打印制表符\t]

我的主要问题是:如何每行打印5个整数

这是我尝试过的代码

#include<stdio.h>

int main ( void )
{
    int x = 0;
    while ( x <= 20 ) 
    {
        printf("%d", x);
        ++x;
    }
}
使用while循环和计数器变量x打印1到20之间的整数

但是您的代码打印0到20之间的整数,替换int x=0;通过int x=1

使用x%5的计算。当该值为0时,打印换行符,否则打印制表符

在C中,这直接意味着

putchar((x%5) ? '\t' : '\n');
或者在印刷厂做什么

最后,您的代码可以是:

#include<stdio.h>

int main (void)
{
  int x = 1;
  
  while ( x <= 20 ) {
    printf("%d%c", x, (x%5) ? '\t' : '\n');
    ++x;
  }
}

%是模运算。%b整数将a除以b并返回余数。因此,3%5->3和7%5->2

变量x应该在0到19之间。如果将x除以5,则提醒将是一个范围为0到4的数字

对于x=0,1,2,3,4,5,6,7,8,9,10,11。。。, x%5=0,1,2,3,4,0,1,2,3,4,0,1

如您所见,余数重复从0到4的数字。这是5个数字

因此,诀窍是仅当x%5等于4时才打印新行

int x = 0;
while (x < 20) {
    printf("%d ", x+1);
    if (x % 5 == 4)
        printf("\n");
    x++;
}

你引用的提示回答了你的问题。你试过了吗?我会通过计算x%5来解决这个问题。当这个值为0时,打印一个换行符,否则打印一个制表符。。。那么,为什么要从0开始打印?问题是什么?难道你不知道如何打印换行符,或者你不知道如何使用if语句吗?这就是我需要的。谢谢你的反馈。我不懂模运算符。
pi@raspberrypi:/tmp $ gcc -Wall c.c
pi@raspberrypi:/tmp $ ./a.out
1   2   3   4   5
6   7   8   9   10
11  12  13  14  15
16  17  18  19  20
pi@raspberrypi:/tmp $ 
int x = 0;
while (x < 20) {
    printf("%d ", x+1);
    if (x % 5 == 4)
        printf("\n");
    x++;
}