【发布时间】:2021-06-09 03:14:45
【问题描述】:
用C++写过如下:
#include <iostream>
using namespace std;
int main()
{
int m,n;
int threemin, twomax;
threemin = 1; twomax = 1;
cout<<"Enter m"<<"Enter n";
cin>>m>>n;
int i,j;
for ((i = 1, j = 1) ; ( (i <= m), (j <= n) ) ; (i++,j++))
{
if (m>n){ i <= n ; threemin = threemin*3;} // for changing max value of i if m > n because we want to print 3^min(m,n)
else { threemin = threemin*3 ;} ; //
if (m>n){ j <= m ; twomax = twomax*2;} // same for changing j
else { twomax = twomax*2 ; }
}
cout<<"Threemax is"<<threemin<<"Twomax is"<<twomax;
return 0;
}
问题 -
- 例如 m = 4 和 n = 3 但这里 max(4,3) = 4 和 min(4,3) = 所以,我尝试了这样的代码,它会给出 3^min(m,n) 和2 ^ 最大(4,3)。 但是输出结果是 threemin = 3^3 = 81 和 twomax = 2^3 = 8。两者都以 n 作为指数。
我是初学者。请帮我纠正。
【问题讨论】:
-
您对如下声明有何期待:
j <= m ;j <= n;?请您详细说明您写这篇文章的原因吗? -
另外请重新格式化以使其可读。为您的两个问题提供实际输出,以及您的期望。您不需要 () for 循环的 3 个部分。 if 和 for 后面通常没有空格。条件中的逗号运算符是奇数。
-
你认为
( (i <= m), (j <= n) )会做什么?也不清楚任务是什么。找出一个数字序列的最小值和最大值,并用它做一些有趣的计算? -
有两个循环会简单得多。
-
这不是
( (i <= m), (j <= n) )所做的。 Comma operator 您想要实现的目标将被表示为i <= m && j <= n或i <= m || j <= n。 (我不清楚你的意图。)Logical operators
标签: c++ for-loop if-statement conditional-statements max