我认为我对变量感到困惑
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 > b
总是评估为假。
你需要写任何一个
for ( ; a < b; a++)
或
for ( ; a <= b; a++)
另外编写printf
的调用会更安全
printf("%d * %d = %lld \n", a, i, ( long long )a * i);
【讨论】:
以上是关于我认为我对变量感到困惑的主要内容,如果未能解决你的问题,请参考以下文章
对 jQuery 对象和 JavaScript 变量的不同使用场景感到困惑