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