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

ile liczb dodatnich, ile liczb ujemnych

0 głosów
54 wizyt
pytanie zadane 6 dni temu w C i C++ przez Hektor1025 Nowicjusz (180 p.)

Witam, mam problem z zadaniem o tresci: Napisz program wczytujący 20 liczb rzeczywistych i oblicz ile z tych liczb jest dodatnich, ile z tych liczby jest ujemnych, a ile równych zero. Liczby dodatnie mi wylicza,a ujemnych nie. Nie wiem dlaczego. Prosze o wyjasnienie.

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

int main()
{
    int i,dodatni=0,ujemne=0;
    float tab[20];
    for(i=0;i<21;i++){
        printf("Podaj liczbe : ");
        scanf("%f",&tab[i]);
        if(tab[i]<0)
    ujemne++;
     else if (tab[i]>0)
    dodatni++;
     }
    for(i=0;i<21;i++){
            printf("%2.f,",tab[i]);}
    printf("\n liczby ujemne to : %d,",ujemne);
    printf("\n liczby dodatnie to : %d,",dodatni);

    return 0;
}

 

2
komentarz 5 dni temu przez Oscar Pasjonat (24,050 p.)
To 21 to za dużo - wychodzisz poza tablicę. Ona ma indeksy od 0 to 19.
komentarz 4 dni temu przez VBService Mędrzec (162,950 p.)

@Hektor1025, do tego co napisał powyżej @Oscar

wartość jaką podajesz za długość tablicy

float tab[20];

w tym przypadku 20, jeżeli chcesz iterować po wszystkich elementach tablicy, też wtedy podajesz tą samą wartość

for (i=0; i<20; i++) {
  // ...
}

 

komentarz 4 dni temu przez Hektor1025 Nowicjusz (180 p.)

@Hektor1025, 

Dzięki za pomoc. Przy zmianie na 20, wylicza liczby ujemne prawidlowo.Pozdrawiam

komentarz 4 dni temu przez Oscar Pasjonat (24,050 p.)

Oczywiście program spełnia założenia, ale w treści zadania nie ma napisane, że masz pamiętać te liczby, ani że masz je powtórnie wypisać. Tak, jak napisał @Apled w swojej odpowiedzi, tablica jest niepotrzebna, po każdym wczytaniu sprawdzasz wczytaną liczbę i zwiększasz odpowiedni licznik. I tyle. Na końcy wypisujesz 3 liczniki. Koniec zadania.

1 odpowiedź

0 głosów
odpowiedź 5 dni temu przez Apled Bywalec (2,860 p.)
Logicznie niby warunki się zgadzają, po za tym, że zapomniałeś zliczać ile jest równych zero.

A w ogóle musisz to zapisywać w tabeli? Bo jak nie to mógłbyś to pominąć i po prostu wczytywać do zmiennej i porównywać wtedy.

Podobne pytania

0 głosów
0 odpowiedzi 43 wizyt
0 głosów
1 odpowiedź 106 wizyt

87,942 zapytań

136,520 odpowiedzi

304,383 komentarzy

58,306 pasjonatów

Motyw:

Akcja Pajacyk

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

Sklep oferujący ćwiczenia JavaScript, PHP, rozmowy rekrutacyjne dla programistów i inne materiały

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...