我想先說我是編程新手。我在用C++編寫另一個列表中不同數字的列表時遇到了問題。比方說,我有一個列表l1 = {1, 12, 2, 4, 1, 3, 2}
,我想創建一個新的列表,看起來像這樣l2 = {1, 12, 2, 4, 3}
...C++中的不同數字
這是我寫的:
#include <iostream>
using namespace std;
int main() {
int l1[100], l2[100], length, length1 = 0, i, j, a = 0;
cin >> length; //set the length
for (i = 0; i < length; i++) {
cin >> l1[i]; //add numbers to the list
}
l2[0] = l1[0]; //added the first number manually
for (i = 0; i < length; i++) {
length1++;
a = 0;
for (j = 0; j < length1; j++) {
if (l1[i] != l2[j]) //this checks numbers in the second list
a = 1; // and if they aren't found a gets the value
} //1 so after it's done checking if a is 1 it
if (a == 1) //will add the number to the list, but if the
l2[j] = l1[i]; //number is found then a is 0 and nothing happens,
} // SUPPOSEDLY
for (j = 0; j < length1; j++) {
cout << l2[j] << " ";
}
}
的這個輸出是1 -858993460 12 2 4 1 3
所以很明顯,我做了有些事情非常錯誤我歡迎您提出任何建議,我不一定需要解決方案,我只是想脫鉤。 非常感謝您花時間回覆此問題。
你是否確實在任何地方聲明瞭'j'?也許我會瘋了... – therealrootuser 2014-08-31 00:50:18
似乎有邏輯上的缺陷 - 'for(j = 0; j
ydoow
2014-08-31 00:52:48
@ mattingly890是的,我編輯了我的帖子,對不起,我沒注意到當我第一次問我的queston時,我在初始程序中有一些其他變量用於菜單和東西,當我刪除那些我必須不小心刪除了j。 – Andrew 2014-08-31 00:54:25