Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

C - Błąd przy tworzeniu wektora

Matek33_33 03 Lut 2014 20:35 804 5
  • #1 03 Lut 2014 20:35
    Matek33_33
    Poziom 12  

    Witam
    Mam o to takie zadanie:

    Dany jest wektor A[1:n] o elementach całkowitych. Utworzyć wektor B następująco :
     jeżeli liczba wektora A była parzysta nie zmieniać jej
     jeżeli liczba wektora A była nieparzysta podnieść ją do kwadratu.
    Obliczyć sumę elementów o nieparzystych indeksach.

    Przy kompilacji wyskakuje mi błąd:
    In function 'int stworz(int*, int)':
    [Error] lvalue required as left operand of assignment

    Naprawione DZIĘKUJE !!

    Niepoprawnie tworzy wektor B. Tzn Tworzy go, ale ze złymi wartościami


    Kod: text
    Zaloguj się, aby zobaczyć kod

    0 5
  • Pomocny post
    #2 03 Lut 2014 21:01
    Akane
    Poziom 27  

    Tuaj masz błąd: (a*a)=b;
    Wartość b można przypisać do zmiennej, a nie do wyniku operacji.

    0
  • #3 03 Lut 2014 21:08
    Matek33_33
    Poziom 12  

    Ok dzięki :)

    Ale pojawił się inny problem :/

    Nie tworzy poprawnie wektora B

    Kod: text
    Zaloguj się, aby zobaczyć kod

    0
  • Pomocny post
    #4 04 Lut 2014 15:23
    qwerty_cplusplus
    Poziom 8  

    Nie potrzebnie używasz typu float, raz odliczasz pętle for(...) od jednego a raz od zera. Zmień funkcje stworz(...) na podaną poniżej. Linia b=abs(b) jest chyba opcjonalna.

    Kod: c
    Zaloguj się, aby zobaczyć kod

    0
  • Pomocny post
    #5 04 Lut 2014 18:27
    Akane
    Poziom 27  

    Można jeszcze inaczej:

    Kod: c
    Zaloguj się, aby zobaczyć kod
    Oraz jej wywołanie:
    Kod: c
    Zaloguj się, aby zobaczyć kod


    Funkcja abs w poście powyżej jest całkowicie zbyteczna, gdyż kwadrat liczby rzeczywistej jest zawsze nieujemny.

    0
  • #6 07 Lut 2014 17:55
    Matek33_33
    Poziom 12  

    Dziękuje za pomoc :)

    0