我认为我对变量感到困惑

Posted

技术标签:

【中文标题】我认为我对变量感到困惑【英文标题】:I think there's something I'm confused about with the variables 【发布时间】:2021-09-01 04:39:41 【问题描述】:
#include<stdio.h>
void Multi(int num1, int num2)

    int a, b;
    if (num1 < num2)
        a = num1, b = num2;
    else
        a = num2, b = num1;
    for (a; a > b; a++)
    
        for (int i = 1; i < 10; i++)
            printf("%d * %d = %d \n", a, i, a * i);
     
;
int main(void)

    int a, b;
    printf("enter two numbers :\n");
    scanf_s("%d %d", &a, &b);
    Dan(a, b);
    return 0;

这两个程序都不执行 For 语句。我认为变量有问题。

【问题讨论】:

什么是“不执行”? 我们这里可能有沟通不畅的问题。你说“这两个程序”但只发布了一个程序。您指的是“功能”吗? 什么是Dan?你在哪里打电话Multi?创建minimal reproducible example 时,请确保它只复制您询问的问题。 @Mike 没问题,这样使用逗号表达式是相当糟糕的风格。使代码更难阅读和理解(如您所见;))。 【参考方案1】:

这个for循环(循环体)

 for (a; a > b; a++)

永远不会执行,因为在前面的代码中 a 被设置为小于或等于 b。所以a &gt; b 总是评估为假。

你需要写任何一个

for ( ; a < b; a++)

for ( ; a <= b; a++)

另外编写printf的调用会更安全

printf("%d * %d = %lld \n", a, i, ( long long )a * i);

【讨论】:

以上是关于我认为我对变量感到困惑的主要内容,如果未能解决你的问题,请参考以下文章

我对运行时或编译时是否进行自动内存分配感到困惑

对 jQuery 对象和 JavaScript 变量的不同使用场景感到困惑

来自 application.html.erb 的 Rails 渲染实例变量

打印!借用还是拥有变量?

对不应该包括但......我认为的助手感到困惑

在 Oracle 中正确使用带日期的绑定变量?