C ++ программа, которая принимает десять чисел от пользователя в массив и сортирует массив по порядку, используя указатели - PullRequest
0 голосов
/ 31 октября 2019

Напишите программу, которая просит пользователя ввести 10 положительных целых чисел, сохраняет их в массиве, а затем заменяет первый элемент на минимальное число, а последний элемент - на максимальное число.

Youдолжен написать 3 функции:

  1. void getNumber (int *): вводит 10 положительных целых чисел и сохраняет их в массиве.

  2. void minMax(int *): находит минимальное и максимальное число и переупорядочивает массив.

  3. printNumber (int *): печатает полученный новый массив.

Примечания:
Вы ДОЛЖНЫ использовать указатели для доступа к массиву во всех функциях (отказ от использования указателя приведет к вычету 50%).

Это работает, но мне нужночасть пользовательского ввода, которая сейчас находится в main, тоже будет своей собственной функцией. Я не знаю, как это сделать!

#include <iostream>
using namespace std;

// Function to sort the numbers using pointers 
void sort(int n, int* ptr)
{
    int i, j, t;

    // Sort the numbers using pointers 
    for (i = 0; i < n; i++) {
        for (j = i + 1; j < n; j++) {
            if (*(ptr + j) < *(ptr + i)) {
                t = *(ptr + i);
                *(ptr + i) = *(ptr + j);
                *(ptr + j) = t;
            }
        }
    }
}

int print(int n, int *ptr) 
{
    for (int i = 0; i < n; i++)
        cout << *(ptr + i) << " " ;
    cout << endl;
    return *ptr + 1;
}

int main()
{
    //int n = 10;
    //int arr[] = { 0, 4, 74, 88, 12, 37, 12, 7, 65, 2 };

    const int SIZE = 10;
    int values[SIZE];
    int i;
    //user input
    cout << "Enter 10 numbers: ";
    for (i = 0; i < 10; ++i)
        cin >> values[i];
    //prints forward array
    cout << "You entered: ";
    for (i = 0; i < 10; ++i)
        cout << values[i] << " ";
    cout << endl;

    sort(i, values);
    cout << "The numbers in order are: ";
    print(i, values);

    system("pause");
    return 0;
}

1 Ответ

0 голосов
/ 31 октября 2019

Вот код, который учитывает ввод пользователя в отдельную функцию:

void FillInArrayFromInput(int* arr, int size) // take the pointer to first element of the array and the size
{
    cout << "Enter 10 numbers: ";
    for (int i = 0; i < size; ++i)
        cin >> arr[i]; // Edit: there was little typo here!
}

Теперь основной функцией будет:

int main()
{
    const int SIZE = 10;
    int values[SIZE];

    //user input
    FillInArrayFromInput(values, SIZE);

    //prints forward array
    cout << "You entered: ";
    for (i = 0; i < 10; ++i)
        cout << values[i] << " ";
    cout << endl;

    sort(i, values);
    cout << "The numbers in order are: ";
    print(i, values);

    system("pause");
    return 0;

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...