1

Тема: Використання функцій для роботи з масивами

Якщо кому цікаво,  зробив програму, яка за допомого функцій вводе значення в масив, а також просто виводе вміст масиву. Якщо є певні помилки в правильності коду, підкажіть будь ласка! Буду тільки радий)

 #include <iostream>
#include <stdlib.h>
#include <stdio.h>
using namespace std;

int func_for_massiv1();
int func_for_massiv2();
void clear();
int main()
{ 
    cout << "Enter number for first array " << endl;
    func_for_massiv1();
    cout << "Do you want clear the screen? (y/n) " << endl;
    char vidpovid = getchar();
    cin >> vidpovid;
    
    if (vidpovid != 'y')
    {
        
        cout << "Elements from second array " << endl;
        func_for_massiv2();
    }
    else if (vidpovid != 'n')
    {
        clear();
        cout << "Elements from second array " << endl;
        func_for_massiv2();
    }

    system("pause");
    return 0;
}

void clear()
{
    system("cls");
}

int func_for_massiv1()
{
    int massiv1[10];
    int g;
    cout << "Please enter 10 elements for array " << endl;
    int a;
    for ( unsigned int i = 0; i < 10; ++i)
    {
        cout << "Enter " << i << " element for array: ";
        
            cin >> a;
            massiv1[i] = a;
            cout << "Your element " << a << endl;
    }
    for (g = 0; g <= 9; g++)
    {
        cout << " " << massiv1[g];
    }
    cout << endl;
    return 0;
}

int func_for_massiv2()
{
    int massiv2[5] = { 23, 13, 8, 6, 1 };
    int b;
    for (b = 0; b <= 4; b++)
    {
        cout << "array[" << b << "]" << "\t\t" << massiv2[b] << endl;
    }
    return 0;
} 
Подякували: 0xDADA11C7, Arete, М18х003

2

Re: Використання функцій для роботи з масивами

1. Неінформативні назви функцій. Можна було б назвати input_output і print_static, наприклад.
2. Рядки 14-15 - ви двічі вводите одну зміну, та ще й різними бібліотеками. Це не дуже добре.
3. Розгалуження 17-28 - фактично в обох гілках виконуються одні й ті самі дії. Тобто їх можна винести за межі гілок, а тоді одна з гілок взагалі відпадає.
4. system - не найкращий варіант для простих операцій (хоча й компактний в коді).
5. Змінні g і a проголошені до фактичного використання без реальної потреби, їх можна проголошувати далі.
6. Загальна традиція в C++ - цикли по масивах робити з порівнянням знаком <, тобто не b <= 4, а b < 5. Оскільки масиви починаються з 0, так одразу видно розмір масиву.
7. Рядок 45 - чомусь змінна unsigned int. В принципі, це навіть правильно, але в решті коду аналогічні цикли по int.

Подякували: Arete, leofun01, slusarj23, PRY4