【发布时间】:2016-12-30 20:02:40
【问题描述】:
首先,我创建了 2 个数组。打电话给他们A[] 和B[]。
数组 A 有元素 A = { 11, 16, 21 }
数组 B 有元素 B = { 12, 7, 18, 24, 101 }
我做了一个循环。比较两者。
for (int i = 0; i<Acount; ++i) {
for (int j = 0; j < Bcount; ++j) {
if (A[i] <= B[j]) {
total = B[j] + total;
break;
}
}
}
这个比较它们,如果 A[] 元素小于任何 B[] 元素,循环停止并将 B 的值加到该点的总数中并停止比较。
现在,如果 A 的每个元素都大于 B,例如:
A = { 11 } 和 B = { 3, 5 }
它应该说 ERROR 并且不应该显示任何值(作为变量总计),但无论我尝试什么,它总是打印大量“ERROR”文本或值,甚至同时打印两者。
我该怎么办?
编辑:澄清;
示例输入:
3 5 //these sets the sizes of A and B, respectively.
11
16
21 //these are for A.
12
7
18
24
101 //these are for B.
程序应该这样做: 嘿,有 11 很酷。让我比较 A 的 11 和 B 的 12,7,18,24,101,看看有没有比我大的。有12个!那很好。让我们将 12 添加到总数中。现在,我有 16 个,让我们与 12、7、18、24、101 进行相同的比较。 12比我小……所以我应该跳过它。 7也是……18比我大!让我们也将 18 加到总数中!现在对于 21... 相同的比较相同的东西。有 24 个。将所有相加并打印结果。
现在,还有另一个示例输入:
1 2 //these sets the size of A and B, respectively.
10 // this is for A
3
5 // these are for B
代码应该做同样的事情,但这次...... 我有10个,让我们看看有没有比我大的。 10比3大吗?不? 5比10大吗?显然不是。所以......没有什么比我更大......我应该打印一个错误。
我希望我让它变得更简单。 干杯。
编辑 2:这是我的完整代码。用我上面提供的示例输入自己尝试一下,然后告诉我出了什么问题。第一个输入应该打印一个实际的数字结果,但打印 ERROR 作为示例。
#include <iostream>
#include <conio.h>
using namespace std;
int main() {
int amountA, amountB, i = 0 ,j = 0, total = 0;
int A[20000];
int B[20000];
cin >> amountA >> amountB;
for (i = 0; i < amountA; i++) {
cin >> A[i];
}
for (j = 0; j < amountB; j++) {
cin >> B[j];
}
for (int i = 0; i < amountA; ++i) {
for (int j = 0; j < amountB; ++j) {
if (A[i] <= B[j]) {
total = B[j] + total;
break;
} else {
cout << "ERROR!" << endl;
return 0;
}
}
}
cout << total << endl;
_getch();
}
【问题讨论】:
-
您的解释有点混乱,能否请您添加一些示例输入和预期输出,以便我们进行测试?
-
当然,我会的。
-
你能显示执行输出打印“错误”和结果的其余代码吗?没有进一步的上下文,这看起来很好。
-
@user1320881 完成!
-
@GhostCat 我该如何解决?当我删除返回 0;它打印错误!错误!错误!错误!错误!54 它不应该说任何错误!...