簡體   English   中英

用戶輸入數組程序不斷返回255

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM