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

problem ze zmienna

Object Storage Arubacloud
0 głosów
167 wizyt
pytanie zadane 22 października 2017 w C i C++ przez Marcin Mozolewski Nowicjusz (170 p.)
edycja 22 października 2017 przez Eryk Andrzejewski

witam.

mam problem z wyswietlaniem prwidłowej sredniej. gdzie popełniam błąd?

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

int main()
{
    int tablica[10];
    int a,b,i,sum,min,max;
    float srednia;
    srednia=0.0;
    a=b=i=sum=0;
    min=100;
    max=-100;
    srand(time(NULL));
    for(i=0;i<10;i++)
    {
        tablica[i]=(rand()%21-10);
    }
    for(i=0;i<10;i++)
    {
        printf("%d  ", tablica[i]);
        sum+=tablica[i];
    }
    for(i=0;i<10;i++)
    {
        if(max<tablica[i])
        {
            max=tablica[i];
        }
        if(min>tablica[i])
        {
            min=tablica[i];
        }
    }
    srednia=sum/10;
    for(i=9;i>-1;i--)
    {
       if(tablica[i]>srednia)
       {
           a++;
       }
       if(tablica[i]<srednia)
       {
           b++;
       }
    }
    printf("\n");
    printf("min= %d max= %d\n",min,max);
    printf("suma wynosi= %d\n",sum);
    printf("srednia wynosi= %.1f\n",srednia);
    printf("liczb mniejszych od sredniej: %d\n",b);
    printf("liczb wiekszych od sredniej: %d\n",a);
    for(i=9;i>-1;i--)
    {
        printf("%d  ",tablica[i]);
    }
}

 

komentarz 22 października 2017 przez Eryk Andrzejewski Mędrzec (164,260 p.)
Proszę o wstawianie kodu w bloczek i poprawny dobór tagów. Jaki związek mają php i js z tym pytaniem?
komentarz 22 października 2017 przez Marcin Mozolewski Nowicjusz (170 p.)
jest to mój pierwszy post na forum. nie wiedziałem że trzeba wstawiać kod w bloczek. Takie tagi zostały mi podpowiedziane i takie dodałem.
komentarz 22 października 2017 przez Eryk Andrzejewski Mędrzec (164,260 p.)

Rozumiem. Ale jeśli ma forum ma być porządek, to wszyscy powinni się do określonych zasad zastosować. Tym bardziej, że wszystko na temat zadania pytania znajduje się w FAQ. wink

komentarz 22 października 2017 przez Marcin Mozolewski Nowicjusz (170 p.)
Nie znalazłem nigdzie odpowiedzi na moje pytanie. Mógłbyś mi wskazać gdzie popełniłem błąd w kodzie?
2
komentarz 22 października 2017 przez niezalogowany

jest to mój pierwszy post na forum. nie wiedziałem że trzeba wstawiać kod w bloczek. Takie tagi zostały mi podpowiedziane i takie dodałem.

Tylko, że przy rejestracji deklarujesz że przeczytałeś regulamin, a wymóg o kodu w bloczku jest w regulaminie ;)

2 odpowiedzi

0 głosów
odpowiedź 22 października 2017 przez Aleksander Januszews Gaduła (3,790 p.)
wybrane 22 października 2017 przez Marcin Mozolewski
 
Najlepsza

Błąd polega na dzieleniu int przez int co daje int. Jak wiadomo int okraja liczbę do części całkowitej. Aby otrzymać liczbę z częścią ułamkową należy podzielić float/int albo int/float co da float:

srednia=sum/10;

Tutaj masz dzielenie int przez int co okraja ci wynik do liczby całkowitej. 

Musisz rzutować dzielną albo dzielnik do float'a wtedy otrzymasz liczbę z częścią ułamkową

0 głosów
odpowiedź 22 października 2017 przez manjaro Nałogowiec (37,390 p.)
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main()
{
    int tablica[10];
    int a,b,i,min,max;
    float srednia, sum;
    srednia=0.0;
    a=b=i=sum=0;
    min=100;
    max=-100;
    srand(time(NULL));
    for(i=0;i<10;i++)
    {
        tablica[i]=(rand()%21-10);
    }
    for(i=0;i<10;i++)
    {
        printf("%d  ", tablica[i]);
        sum+=tablica[i];
    }
    for(i=0;i<10;i++)
    {
        if(max<tablica[i])
        {
            max=tablica[i];
        }
        if(min>tablica[i])
        {
            min=tablica[i];
        }
    }
    srednia=sum/10;
    for(i=9;i>-1;i--)
    {
       if(tablica[i]>srednia)
       {
           a++;
       }
       if(tablica[i]<srednia)
       {
           b++;
       }
    }
    printf("\n");
    printf("min= %d max= %d\n",min,max);
    printf("suma wynosi= %.1f\n",sum);
    printf("srednia wynosi= %.1f\n",srednia);
    printf("liczb mniejszych od sredniej: %d\n",b);
    printf("liczb wiekszych od sredniej: %d\n",a);
    for(i=9;i>-1;i--)
    {
        printf("%d  ",tablica[i]);
    }
}

Gryzą się typy int z float przy zmiennych suma i srednia

Podobne pytania

0 głosów
1 odpowiedź 323 wizyt
pytanie zadane 11 października 2018 w C i C++ przez ola123 Nowicjusz (180 p.)
0 głosów
1 odpowiedź 175 wizyt
–1 głos
0 odpowiedzi 189 wizyt
pytanie zadane 23 listopada 2016 w C i C++ przez Rafaello Nowicjusz (170 p.)

92,579 zapytań

141,429 odpowiedzi

319,657 komentarzy

61,962 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.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...