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

Zadanie z iloczynem liczb [C]

Cloud VPS
–1 głos
720 wizyt
pytanie zadane 26 stycznia 2018 w C i C++ przez Sansi Użytkownik (720 p.)

Cześć wszystkim 

Otóż mam takie zadanko, zgodnie z którym mam policzyć iloczyn kolejnych liczb wprowadzanych przez użytkownika, ale liczby te mają być z przedziału <1;100>. Ma być funkcja i wskaźnikowe zwracanie wyniku oraz zwracanie informacji czy znaleziono takie liczby przez return.

Wskaźników jeszcze nie ruszyłam, ale już gdzieś zakradł się błąd bo iloczyn nie wygląda ani trochę jak powinien. Nie wiem czy dobrze zabieram się do liczenia tego :/ Mógłby ktoś zerknąć?


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

int iloczyn(int T[],int ile)
{
    int i,iloczyn=1;
    for (i=0;i<ile;i++)
    {
        iloczyn=T[i]*T[i+1];
    }
    return printf("Znaleziono liczby spelniajace warunek\n");
}
int main()
{
    printf("Ile liczb chcesz podac?\n");
    int ile;
    scanf("%d",&ile);
    int T[ile];
    printf("Podaj liczby\n");
    for (int i=0;i<ile;i++)
    {
        scanf("%d",&T[i]);
    }
    int i;
    for (i=0;i<ile;i++)
    {
    if ((T[i]>=1)&&(T[i]<=100))
    {
        iloczyn(T,ile);
    }
    }
    printf("%d",iloczyn);


    return 0;
}
komentarz 26 stycznia 2018 przez Ghost Bywalec (2,930 p.)
Chyba powinno być:

iloczyn *= T[i];
komentarz 26 stycznia 2018 przez Sansi Użytkownik (720 p.)
Chyba mimo wszystko problem leży jeszcze gdzie indziej :/ mimo tej zmiany wynik nadal ten sam czyli przy podaniu 1,2,3 iloczyn to 4199248 :/
komentarz 26 stycznia 2018 przez Ghost Bywalec (2,930 p.)
#include <stdio.h>
#include <stdlib.h>
 
int iloczyn(int T[],int ile)
{
    int i,iloczyna=1;
    for (i=0;i<ile;i++)
    {
        iloczyna *=T[i];
    }
    return iloczyna;
}
int main()
{
    printf("Ile liczb chcesz podac?\n");
    int ile;
    scanf("%d",&ile);
    int T[ile];
    printf("Podaj liczby\n");
    for (int i=0;i<ile;i++)
    {
        scanf("%d",&T[i]);
    }
    int i;
    for (i=0;i<ile;i++)
    {
    if ((T[i]>=1)&&(T[i]<=100))
    {
        iloczyn(T,ile);
    }
    }
    printf("%d",iloczyn(T, ile)); //tutaj zmiana
 
 
    return 0;
}

 

chyba działa, dla licz 1,2,3 daje wynik 6

komentarz 26 stycznia 2018 przez Patrycjerz Mędrzec (192,320 p.)
Nie piszemy odpowiedzi do pytań w komentarzach. Proszę o tym pamiętać na przyszłość.
komentarz 26 stycznia 2018 przez Sansi Użytkownik (720 p.)
Nie uwzględnia warunku przedziału liczb. Powinnam go zawrzeć w funkcji czy po prostu jest źle wymyślony?
komentarz 26 stycznia 2018 przez Ghost Bywalec (2,930 p.)
A nie zauważyłem możesz dać w warunku wyświetlenie

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

0 głosów
2 odpowiedzi 5,096 wizyt
pytanie zadane 26 listopada 2015 w C i C++ przez agre Użytkownik (550 p.)
0 głosów
1 odpowiedź 662 wizyt
pytanie zadane 4 marca 2018 w C i C++ przez janusz1 Początkujący (330 p.)
0 głosów
1 odpowiedź 658 wizyt
pytanie zadane 28 lutego 2018 w C i C++ przez janusz1 Początkujący (330 p.)

93,483 zapytań

142,417 odpowiedzi

322,763 komentarzy

62,895 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
...