C ++ функции печати массива - PullRequest
0 голосов
/ 04 июня 2018

Я пытаюсь написать небольшую программу и хочу напечатать массив, но он не будет работать, для приложения я использую функцию case.

Создайте интерактивное приложение, которое отображает на экране пять параметров:

Чтение строки числовых значений;

  • Показать строку;
  • Сортировка строки с использованием сортировки по вставке;
  • Сортировка строки с использованием сортировки по выбору;
  • Сортировка строки с использованием сортировки пузырьков;
  • Выход из приложения.

Это мой текущий код:

#include <iostream>

using namespace std;

// int n[12] = {1, 2, 3, 4, 5, 6, 15, 18, 57, 30, 20, 7};
int j, k, nr, n[20];

void values(void) {

  cout << "\n"
       << "input_values ";

  int n[20], nr, i;
  cout << "number of elements max 20 ";
  cin >> nr;
  for (i = 0; i < nr; i++) {
    cout << "n[" << i << "] = ";
    cin >> n[i];
  }
}

void afisare(void) {

  cout << "\n"
       << "display array; ";

  for (int i = 0; i < nr; ++i)
    cout << n[i] << ",";
}

1 Ответ

0 голосов
/ 04 июня 2018

Вы можете использовать function pointer в этом случае, например:

void sort1(int*arr, int n);
void sort2(int*arr, int n);
void sort3(int*arr, int n);
void show(int*arr, int n);
//...
//implement body for the functions above
//...
int main()
{
   int arr[5]={5,4,6,3,9};
   int n=5;
   void (*funcPointer[4])(int*,int)={&sort1,&sort2,&sort3,&show};
   int choice=999;
   //assume you just type from -1 to 3.
   //-1 means exit
   while(choice!=-1)
   {
     cin>>choice;
     if(choice==-1) //exit
     {
        return 0;
     }
     else
     {
        funcPointer[choice](arr,n); 
     }
     //and do something what you want
   }
   return 0;
}

Подробнее о function pointer https://www.cprogramming.com/tutorial/function-pointers.html

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