c - 这在 C 语言中的 while 循环是什么意思?

标签 c

int main(){

    char s[10];
    int t,n,i,a,w;
    scanf("%d",&t);
    while(t--)
    {
        w=0;
        scanf("%d%s",&n,s);
        for(i=0;i<n;i++)
        {
            scanf("%d",&a);
            if(a%2==0)
            w++;
        }
        if(n==1 && w==1 && strcmp(s,"Dee") == 0)
        printf("Dee\n");
        else
        printf("Dum\n");
    }
    return 0;} 

while(t--)? 这是 while(t=t-1) 吗? 对于任何给定的 t 整数,这都不是真的吗?

最佳答案

while (t--) {
    ...
}

表示评估t是真还是假,然后递减t。因此,如果您为 t 输入值 1,那么上面的循环实际上会迭代一次,然后终止。

另一方面,如果您有以下循环:

while (--t) {
    ...
}

如果您为 t 输入了 1,那么循环甚至不会执行一次,因为 t 在被循环。

关于c - 这在 C 语言中的 while 循环是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39179749/

相关文章:

iphone - 我在 Xcode 中得到预期的标识符

C 多行宏 : do/while(0) vs scope block

c++ - GNU 编译器 vs. Visual Studio 在数组上分配 w/Length Constant w/in a Scope

c - SSE 将寄存器设置为 0.0's and 1.0' s 的最佳方法?

用于解析 Erlang 二进制文件的 C 库?

c - 为什么打印 unsigned char 会输出这么大的数字?

c - 加载 DLL 库

python - 将Python编译成机器码可行吗?

c - 函数中的参数太少,无法调用 [C 程序]

Cygwin、gcc 和 C_INCLUDE_PATH