Program wypisuje najmniejszą i największą liczbę

0

Mam napisać program pobierający 10 liczb i wypisujący największą i najmniejszą wartość. Na razie ma takie coś

#include<stdio.h>
#include <stdlib.h>
int main(void)
{
    float c,n,m;
    printf("Podaj 10 liczb");
    scanf("%f",&n);
    for(i=0;i<=9;i++)
{
    if(c<n)
    n=c;
    if(m<n)
    m=n;
}
    printf("Najmniejsza liczba to %f\nNajwieksza liczba to%f",n,m);
    return 0;
}

Na czym polega błąd?

0

Nieważne nie wpisałem scanf w pętli xd

0

Fajnie by było gdybyś jeszcze napisał co jest nie tak, zamiast kazać nam zgadywać.

Pobierasz wartość od użytkownika jednokrotnie, zamiast w pętli. Nigdzie nie ustalasz wartości c i m.

    if(c<n)
    n=c;
    if(m<n)
    m=n;

Zdecyduj się którą wartość pobierasz i porównujesz do najmniejszej/największej, a do których przypisujesz wartości do zapamiętania.

dodatkowo: formatuj kod, jak jest to problemem to http://format.krzaq.cc

0

Mój kod wygląda teraz tak:

#include <stdio.h>
int main (void)
{
    printf("Podaj liczby");
    float b;
    scanf("%f",&b);
    float s=0,a,max;
    while(1)
    {

        scanf("%f",&a);

        s+=a+b;
        if(a<b&&a!=-1&&b!=-1)
        b=a;
        if(a>b&&a!=-1&&b!=-1)
        max=a;
        else
        max=b;
        if(a==-1)
        break;
    }

    printf("Najwieksza %f\nNajmniejsza%f\nSrednia %f",max,b,s/10);
    return 0;
}

Jednak nie bardzo wiem jak policzyć średnią, i największą liczbę.

0

Jeżeli chcesz pobrać 10 licz i dla nich wykonać operację zrób to w pętli, która wykona się 10 razy.

        float a, b, max, min, s;
        printf("Podaj liczby:");
        scanf("%f",&a);
        s = a;
        max = a;
        min = a;
        for (int i = 0; i < 9; i++)
        {
            scanf("%f",&b);
            s += b;
            if (min > b) min = b;
            if (max < b) max = b;
        }
        printf("Najwieksza %f\nNajmniejsza%f\nSrednia %f",max,min,s/10);
        return 0;

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0