gpt4 book ai didi

c - 如何在 C 中的参数中包含正式的 if 语句?

转载 作者:太空狗 更新时间:2023-10-29 16:10:06 26 4
gpt4 key购买 nike

例如,我有一些乘法表的代码,但为了让它看起来更整洁,我在我的打印中有这个 %s 根据它是两位数还是一位数来分隔每个数字.

printf(" %d %s", columns * multiplier,
(columns * multiplier < 10) ? " " : " ");

我的 if 语句是速记版本(据我所知它只能有 2 个条件?),这是我知道如何在 printf 字符串中包含 %s 的 if 语句的唯一方法,如何我做一个可以有多个条件的 if 语句?就像三位数或四位数一样。

最佳答案

实际上,您可能会使用 printf 格式化程序的最小字段宽度选项以及左对齐标志 (-),例如 printf("%-5d", 1);,但如果您想以此为契机玩三元组,注意 its syntax是:

conditional-expression:
logical-OR-expression
logical-OR-expression ? expression : conditional-expression

在英语中,这意味着您可以嵌套它:

#define PR(X) printf(" %d %s", X,  \
(X)<10 ? " " : \
(X)<100 ? " " : \
(X)<1000 ? " " : "" \
)

#include <stdio.h>
int main(){
printf(" %-5d", 1);
printf(" %-5d", 22);
printf(" %-5d", 333);
printf(" %-5d\n", 4444);

//PRINTS:
//1 22 333 4444

//The same thing with the ternary:
PR(1);
PR(22);
PR(333);
PR(4444);
puts("");

}

关于c - 如何在 C 中的参数中包含正式的 if 语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53982596/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com