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

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

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

Теперь я хотел бы работать только с вектором, который имеет абсолютные значения. Как я могу сохранить новые абсолютные значения в том же векторе и переопределить введенные пользователем значения?

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

#include <stdio.h>

void print_vector(int N,float * V);
void save_vector(int N,float * V);
void absolute_values(int N, float * V);



int main(void)
{

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

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

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

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

    return 0;
}

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

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

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

1 Ответ

0 голосов
/ 27 апреля 2020

Просто оставив здесь окончательный ответ после просмотра раздела комментариев и следуя советам некоторых программистов @Some! : -)


void print_vector(int N,float * V);
void save_vector(int N,float * V);
void absolute_values(int N, float * V);



int main(void)
{

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

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

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

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

    return 0;
}

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

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

void absolute_values(int N, float * V)
{
    int i;
    for(i=0;i<N;i++)
    {
        V[i]=((V[i]<0)?-V[i]:V[i]);
        printf(" %f", V[i]);
    }
}

...