c - 如何在 C 中第二次执行函数时将 printf 打印到下一行?

标签 c

解决问题。但是我的输出与预期的输出不匹配。

输入:

2
16
10

预期输出:

16 11 6 1 -4 1 6 11 16
10 5 0 5 10

实际结果:

16 11 6 1 -4 1 6 11 16 10 5 0 5 10

我几乎尝试了所有转义序列,即 "\n" "\t"

#include <stdio.h>
#include <stdbool.h>

void printPattern(int n, int m, bool flag) {
    printf("%d ", m);

    if (flag == false && n == m)
        return;

    if (flag) {
        if (m - 5 > 0)
            printPattern(n, m - 5, true);
        else
            printPattern(n, m - 5, false);
    } else 
        printPattern(n, m + 5, false);        

    //return 0;
}

int main() {
    //int n = 16;

    int t, n;
    scanf("%d", &t);

    while (t-- > 0) {
        scanf("%d", &n);
        printPattern(n, n, true);
    }
    return 0;
}

输入:

2
16
10

预期输出:

16 11 6 1 -4 1 6 11 16
10 5 0 5 10

实际结果:

16 11 6 1 -4 1 6 11 16 10 5 0 5 10

最佳答案

在循环中调用 printPattern 后,您只需要打印一个换行符即可。

while(t-->0){
    scanf("%d", &n);
    printPattern(n,n,true);
    printf("\n");
}

我不会将换行打印放在递归 printPattern 函数本身中。您希望为从输入中读取的每个数字打印一行,此解决方案最能反射(reflect)您的意图。

您也可以用 putchar('\n') 代替 printf

关于c - 如何在 C 中第二次执行函数时将 printf 打印到下一行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54495631/

相关文章:

c - 关于如何使用指针将数组作为函数参数传递的代码片段的说明?

c - 使用将超过其类型最大值的索引/计数器循环

可变参数宏中标记的串联

c - 如何对使用 malloc 声明的 int 数组进行操作?

C <pthread.h> 将局部变量传递给线程已损坏

c - "jump to first/next error"的 Eclipse key ?

c - 从 Core Audio 框架开始

c - 关于在偏移量 : what is GCC complaining about? 处访问字节的 GCC 警告

c - 在 C 中使用 fscanf 扫描字符串

c - 发送字符数组作为参数?