Как сохранить вектор, введенный пользователем, используя подпрограмму? - PullRequest
0 голосов
/ 26 апреля 2020

Только начал изучать C, и было бы здорово, если бы вы могли помочь мне со следующим:

Я только что написал программу, которая сохраняет 4-компонентный вектор, введенный пользователем (используя функцию под названием save_vector) и печатает его (используя функцию print_vector).

Однако я не уверен, как заставить работать функцию save_vector. Другая функция print_vector, кажется, работает просто отлично.

Будем рады прочитать любые предложения по улучшению этого куска кода! Спасибо! : -)

#include <stdio.h>

void print_vector(int,float *);
void save_vector(n,v+i);


int main(void)
{

    const int n=4;
    int i;
    float v[4];

    puts("Enter the 4 components of the vector:");
    save_vector(n, v);

    puts("\nThe vector is:");
    print_vector(n, v);

    return 0;
}

void save_vector(int N, float v+i)
{
    int i;
    for(i=0;i<n;i++)
        scanf("%f",v+i);
}

void print_vector(int N, float V[N])
{
    int i;
    for(i=0;i<N;i++)
        printf(" %.2f ",*(V+i));
}

1 Ответ

1 голос
/ 26 апреля 2020

Вы должны изменить объявление на

void save_vector(int ,float *);

или с именем аргументов, если хотите.

void save_vector(int N, float * v)

Потому что n и v+i не объявлено, поэтому вы не можете использовать их в объявлении save_vector функции.

и в реализации save_vector:

void save_vector(int N, float * v)
{
    int i;
    for(i=0;i<N;i++)
        scanf("%f",v+i);
}
...