[英]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.