Использование одной и той же функции несколько раз, даже если векторы разные - PullRequest
1 голос
/ 07 мая 2020

В приведенном ниже коде я сохраняю и печатаю два вектора. Это означает, что я создал каждую функцию - scanf() и printf() - дважды, даже если они одинаковы, за исключением имени вектора, с которым они работают. Как я мог иметь только одну функцию scanf() и printf() и при этом сохранять и печатать столько векторов, сколько хочу? Nb В этом случае я работаю только со статическими c векторами.

#include <stdio.h>

int scanning_first_vector(int *vector1);
int printing_first_vector(int *vector1);

int scanning_first_vector(int *vector2);
int printing_first_vector(int *vector2);


int main()
{

    int vector1[5], vector2[5];

    printf("Please enter the first vector.\n");

    scanning_first_vector(vector1);
    printing_first_vector(vector1);

    printf("\nPlease enter the second vector.\n");

    scanning_first_vector(vector2);
    printing_first_vector(vector2);

    return 0;
}

int scanning_first_vector(int *vector1)
{
    int i;
    for (i = 0; i < 5; ++i)
    {
        scanf("%d", &vector1[i]);
    }
    return 0;   
}

int printing_first_vector(int *vector1)
{
    int i;
    for (i = 0; i < 5; ++i)
    {
        printf(" %d ", vector1[i]);
    }
    return 0;
}

int scanning_second_vector(int *vector2)
{
    int i;
    for (i = 0; i < 5; ++i)
    {
        scanf("%d", &vector2[i]);
    }
    return 0;
}

int printing_second_vector(int *vector2)
{
    int i;
    for (i = 0; i < 5; ++i)
    {
        printf(" %d \n", vector2[i]);
    }
    return 0;
}

1 Ответ

1 голос
/ 07 мая 2020

Думаю, я только что сделал более компактную версию кода после прочтения комментариев - спасибо, ребята! :-) Теперь я понимаю, что могу использовать ту же функцию, и мне нужно только убедиться, что я даю отличительные имена векторам в функции main(). Он работает хорошо, но было бы здорово получить подтверждение того, что код здесь написан максимально компактно и хорошо :-) Спасибо!

#include <stdio.h>

int scanning_vector(int *vector);
int printing_vector(int *vector);

int main()
{

    int vector1[5], vector2[5];

    printf("Please enter the first vector:\n");

    scanning_vector(vector1);
    printing_vector(vector1);

    printf("\nPlease enter the second vector:\n");

    scanning_vector(vector2);
    printing_vector(vector2);

    return 0;
}

int scanning_vector(int *vector)
{
    int i;
    for (i = 0; i < 5; ++i)
    {
        scanf("%d", &vector[i]);
    }
    return 0;   
}

int printing_vector(int *vector)
{
    int i;
    for (i = 0; i < 5; ++i)
    {
        printf(" %d ", vector[i]);
    }
    return 0;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...