Navigace: Hlavní stránka -> Jazyk C -> 04 Cykly -> 04.05 Aritmetický průměr záporných a kladných čísel

MENU

04.05 Aritmetický průměr záporných a kladných čísel

Zadání:
Sestavte program, který vypočte aritmetický průměr z kladných a záporných hodnot ze zadaného počtu čísel.
Řešení:
Zadání vyřešíme použitím cyklu FOR, který bude načítat čísla tolikrát, jakou hodnotu zadáme do proměnné pocet.
Po otestování čísla na kladnost či zápornost je přičteme k součtu záporných či kladných hodnot a inkrementujeme
počet záporných či kladných čísel.
#include "stdafx.h"
#include "math.h"
#include 
#include 

using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
	int cislo,n,i,pz,pk,sz,sk;
    float apz,apk;

	printf("Zadejte pocet cisel: ");
	scanf_s("%d",&n,1);

    pz=0;
    pk=0;
    sz=0;
    sk=0;

    for (i=1;i<=n;i++)
	{
       printf("Zadejte %d:cislo: ",i);
       scanf_s("%d",&cislo,1);
       if (cislo<0)
	   {
          pz++;
          sz+=cislo;
	   }
       if (cislo>0)
	   {
          pk++;
          sk+=cislo;
	   }
	}

    apz=(float)sz/pz;
    apk=(float)sk/pk;

	printf("Aritmeticky prumer zapornych cisel=%.3f\n",apz);
	printf("Aritmeticky prumer kladnych cisel=%.3f\n",apk);
	
	system("pause");
	return 0;
}
program ke stažení
Pro studenty:
Pozor, nesmíte vynechat sekci inicializace proměnných. Do proměnných pz, pk, sz a sk MUSÍTE vložit hodnotu 0 (nula), jinak by program dosadil své počáteční hodnoty.

Pro učitele:
Doporučuji ukázat a vysvětlit studentům, jak program zareaguje na nulovou hodnotu v proměnné pocet a na záporné hodnoty v proměnné pocet.
Program se ukončí chybou, pokud se v řadě čísel neobjeví žádné kladné či záporné číslo. Pak zůstane v proměnné pk nebo pz nulová hodnota a dojde k dělení nulou.