我可能做错了什么。我所知道的是程序在显示数组时会一直崩溃。
这是代码:
#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;
那是什么呢?它只是给了我警告:
警告:本地变量的地址&#39; user_input&#39;返回[启用 默认]
关于退货声明。
答案 0 :(得分:1)
你这样做:
userInput(input_values [50],50)
应该是
userInput(input_values,50)
你多次这样做。 第二句话:你也可以循环输入,就像你在程序主要部分做cout一样。