• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Sumowanie liczb parzystych wylosowanych z tablicy w języku C

HackNation - ogólnopolski hackathon
0 głosów
1,650 wizyt
pytanie zadane 24 listopada 2020 w C i C++ przez Wolv63 Użytkownik (630 p.)

Mam mały problem nie wiem jak mogę dobrze zdefiniować polecenie by sumowało liczby parzyste z danego przedziału w tablicy 100 elementowej np. <-100,100>

Liczbę parzystą mogę wyliczyć  jako i%2==0 wtedy liczba jest parzysta. Mogę też zdefiniować sobie zmienną suma=suma+i  oraz nie do końca wiem jak to zapisać by sumowało właśnie liczby parzystę printf("%d",suma+i).

#include <stdio.h>
#include <stdlib.h>

int main()
{


int tab[100], i, j,suma;
for(int i=0;i<99;i++)
tab[i]=-100 +rand()%200;

for(i=0; i<100; i++) printf("%d ",tab[i]);
suma=suma+i;
if(i%2==0) printf("%d",suma+i);


return 0;
}

 

2 odpowiedzi

+1 głos
odpowiedź 24 listopada 2020 przez tangarr Mędrzec (155,140 p.)
Sprecyzuj co chcesz zrobić.
Napisałeś, że chcesz utworzyć tablicę zawierającą parzyste liczby z przedziału <-100, 100> a kod sugeruje, że chcesz stworzyć tablicę z losowymi wartościami z podanego przedziału.

Druga pętla wykonuje tylko wypisywanie elementów tablicy.
Linijki 13 i 14 wykonają się tylko raz.
Gdybyś poprawnie skonstruował tą pętlę to i tak sumowałbyś wszystkie elementy a na ekran wypisywał aktualną sumę powiększoną o aktualnie badany element parzysty.

Ponadto zmienna suma jest niezainicjowana. Dobrą praktyką jest inicjowanie wszystkich zmiennych.
komentarz 25 listopada 2020 przez Wolv63 Użytkownik (630 p.)
Program losuje 100 liczb z przedziału -100 do 100 w tablicy i z tych stu liczb ma obliczyć sumę liczb parzystych
0 głosów
odpowiedź 24 listopada 2020 przez Borys0 Początkujący (400 p.)
#include <stdio.h>
#include <stdlib.h>
 
int main()
{
 
 
int tab[100], i, suma = 0;
for(int i=0;i<99;i++){
    tab[i]=-100 +rand()%200;
 }

for(i=0; i<100; i++) {
   printf("%d ",tab[i]);
 if(i%2==0){
   suma+=i; //to znaczy to samo co to: suma = suma + 1
}
 printf("%d",suma);
 }
   
return 0;
}

Zmienna j nie jest użyta, więc można ją wyrzucić.
W drugiej pętli należałoby umieścić wszystkie elementy, które chcemy aby się wykonały w nawiasach klamrowych.
Warunek sprawdza, czy liczba jest parzysta, jeżeli tak, to doda tą wartość do sumy. Przy każdej iteracji wypisze się aktualna suma, chyba, nie kodzę w C, więc nie do końca wiem co znaczy ten zapis.

Podobne pytania

0 głosów
3 odpowiedzi 7,060 wizyt
0 głosów
1 odpowiedź 8,313 wizyt
pytanie zadane 28 października 2018 w C i C++ przez Paweł123 Nałogowiec (33,540 p.)
0 głosów
2 odpowiedzi 3,570 wizyt
pytanie zadane 1 grudnia 2017 w Java przez Patrycja Ły Początkujący (270 p.)

93,608 zapytań

142,531 odpowiedzi

323,004 komentarzy

63,102 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Kursy INF.02 i INF.03
...