[英]user input array program keeps returning 255
我可能做錯了什么。 我所知道的是,當程序應該顯示數組時,它總是崩潰。
這是代碼:
#include <iostream>
using namespace std;
int findSmallestRemainingElement(int input_values[], int size, int index);
void swap(int input_values[], int first_index, int second_index);
void insertionSort(int input_values[], int size);
void displayArray(int input_values[], int size);
int* userInput(int input_values[], int size);
int main()
{
int input_values[50];
userInput(input_values, 50);
for (int i = 0; i < 50; i++)
{
cout << input_values[i];
}
insertionSort(input_values, 50);
displayArray(input_values, 50);
cout << "\n";
}
void insertionSort(int input_values[], int size)
{
for (int i = 0; i < size; i++)
{
int index = findSmallestRemainingElement(input_values, size, i);
swap(input_values, i, index);
}
}
int findSmallestRemainingElement(int input_values[], int size, int index)
{
int index_of_smallest_value = index;
for (int i = index + 1; i < size; i++)
{
if (input_values[i] < input_values[index_of_smallest_value])
{
index_of_smallest_value = i;
}
}
return index_of_smallest_value;
}
void swap(int input_values[], int first_index, int second_index)
{
int temp = input_values[first_index];
input_values[first_index] = input_values[second_index];
input_values[second_index] = temp;
}
void displayArray(int input_values[], int size)
{
cout << input_values[0] << endl;
cout << input_values[24] << endl;
cout << input_values[49] << endl;
for (int i = 0; i < size; i++)
{
if (i != 0)
{
cout << "\n";
}
cout << input_values[i];
cout << "\n";
}
}
int* userInput(int input_values[], int size)
{
int user_input[50];
for (int i = 0; i <= 50; i++)
{
cout << "Provide input: ";
cin >> user_input[50];
}
return user_input;
}
除非我提早停止程序,否則該程序始終崩潰,並顯示錯誤代碼255(在該錯誤代碼中,它返回一些奇怪的負值)。
該程序是對數組排序(即插入排序)中的“跳入C ++”中的一個實踐問題的解決方案。
這就是問題本身:
編寫一個程序,該程序接受50個值,並打印出最高,最低,平均值,然后打印所有50個輸入值,每行一個。
我用最新的代碼更新編輯了這篇文章。 即使在包含return語句之后,我仍然不斷得到這個奇怪的數組輸出
return user_input;
那么這是怎么回事? 它只是給我警告:
警告:返回本地變量“ user_input”的地址[默認啟用]
關於退貨聲明。
你做這個:
userInput(input_values [50],50)
應該是
userInput(input_values,50)
您多次執行此操作。 第二點:您也可以在循環中接受輸入,就像在程序主要部分執行cout一樣。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.