對於我的學校項目,我應該用大約-10和10之間的隨機數填充20的數組。然後,我必須根據它們是否爲負值來組織這些數字,0或正數。我被告知要完成打印出原始數組的程序,以及新的數組。C++:出現在輸出中的奇怪數字
出於某種原因,有組織的數組在某些空格中打印出隨機(TYPE:long)數字。我不確定爲什麼會出現這種情況。下面是我的代碼:
#include <iostream>
#include <stdlib.h>
#include <time.h>
int main(int argc, const char * argv[]) {
// insert code here...
srand(time(NULL));
int numbers[20], final[20], first = 1, second = 1;
std::cout << "Enter 20 numbers, and without sorting, this program will take them and organize them based on positive, negative, and 0.\n\n";
for(int i = 0; i < 20; i++){
std::cout << "Enter number " << (i+1) << ": ";
//std::cin >> numbers[i];
numbers[i] = (rand()%20 -10);
std::cout << numbers[i] << std::endl;
}
//Numbers lower than 0
for(int i = 0; i < 20; i++){
if(numbers[i] < 0){
final[i] = numbers[i];
first++;
}
}
//Numbers equal to 0
for(int i = first; i < 20; i++){
if(numbers[i] == 0){
final[i] = numbers[i];
second++;
}
}
//Numbers greater than 0
for(int i = second; i < 20; i++){
if(numbers[i] == 0){
final[i] = numbers[i];
}
}
std::cout << "This is your original array: ";
for(int i = 0; i < 20; i++){
std::cout << numbers[i];
if(i != 19)
std::cout << ",";
std::cout << " ";
if(i == 19)
std::cout << std::endl << std::endl << std::endl;
}
std::cout << "This your new, organized, array: ";
for(int i = 0; i < 20; i++){
std::cout << final[i];
if(i != 19)
std::cout << ",";
std::cout << " ";
if(i == 19)
std::cout << std::endl << std::endl << std::endl;
}
system("pause");
return 0;
}
我的輸出是這樣的:
Enter 20 numbers, and without sorting, this program will take them and organize them based on positive, negative, and 0.
Enter number 1: -6
Enter number 2: 0
Enter number 3: -4
Enter number 4: -5
Enter number 5: 0
Enter number 6: -4
Enter number 7: -5
Enter number 8: -5
Enter number 9: -8
Enter number 10: 5
Enter number 11: 0
Enter number 12: -3
Enter number 13: 5
Enter number 14: -5
Enter number 15: 7
Enter number 16: 2
Enter number 17: 9
Enter number 18: 9
Enter number 19: 3
Enter number 20: 2
This is your original array: -6, 0, -4, -5, 0, -4, -5, -5, -8, 5, 0, -3, 5, -5, 7, 2, 9, 9, 3, 2
This your new, organized, array: -6, 1879110449, -4, -5, 0, -4, -5, -5, -8, 1, 0, -3, 1606416384, -5, 1606423158, 32767, 1606416416, 32767, 1606416416, 32767"
預先感謝您所有誰答覆。對此,我真的非常感激。
看起來像意外值的元素從未初始化。還應考慮完全在積極領域工作,並且僅在向用戶呈現時抵消10。 – bvj 2015-02-07 03:14:52
謝謝你的偏移提示。我唯一擔心的是意外值在'final [10]'數組下初始化。我是否在for循環中初始化它們時出錯?它似乎是正確的...... – iProgramIt 2015-02-07 03:22:42
只有最終的[i]元素被設置在數字[i] <= 0的地方。這在你的輸出中也很明顯。如果您發表評論//數字大於0,則表示您有複製粘貼錯誤 – bvj 2015-02-07 03:29:21