【问题标题】: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 没问题,这样使用逗号表达式是相当糟糕的风格。使代码更难阅读和理解(如您所见;))。

标签: c loops for-loop variables min


【解决方案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);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-11-18
    • 1970-01-01
    • 1970-01-01
    • 2011-01-14
    • 2013-07-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多