Informatică, întrebare adresată de paulb007, 8 ani în urmă

Deci imi calculeaza media cu teza, ok. Dar cand imi afiseaza, de ex apare: 7,0625 sau 7,5, intelegeti voi. Eu vreau ca media finala sa imi apara 7, adica numar intreg, aproximata, nu cu zecimale dupa, ce as putea reatasa la acest program? Sau faceti voi cum vreti, dar dati-mi o idee, va rog:
#include iostream
using namespace std;
int main()
{
float a, b, c, d, t, med;
cin>>a>>b>>c>>d>>t;
med = (((a+b+c+d)/4)*3+t)/4;
cout < < med; 
return 0;
}




paulb007: include ala e in iostream dar pe BRAINLY nu se copiaza partea aia, scuzati. La fel si la final e cout med...
sirDumitru: Notele precis ai nevoie să fie float ?
paulb007: nu, pot sa le pun si int a,b,c,d si apoi float med... dar oricum le-as pune ideea e ca imi afiseaza tot cu zecimala dupa, eu vreau sa imi aproximeze nota, adica asa cum se trece media de altfel la scoala..

Răspunsuri la întrebare

Răspuns de sirDumitru
1

#include <iostream>

#include <math.h>

using namespace std;

int main()

{

int a, b, c, d, t;

float med=0;

cin>>a>>b>>c>>d>>t;

med = (((a+b+c+d)*0.75)+t)/4;

cout << round(med);

return 0;

}



sirDumitru: Am inclus biblioteca , în care este inclusă funcția round.
sirDumitru: math.h
paulb007: Functioneaza mersi, dar am cateva nelamuriri: de ce a trebuit sa ii dai mediei med=0? Si cand ai calculat med de ce ai pus (a+b+c+d)*0.75? nu trebuia sa imparti suma notelor la 4?
paulb007: si round cam pt ce se foloseste, pt aproximari?
sirDumitru: Round se folosește pentru aproximări, tu poți desigur să faci asta fără funcția implicită round, dar pentru asta vei avea vreo 10-15 if statements, ceea ce nu e convenabil. Media se egalează cu 0 ca un fel de siguranță că media la sigur o să înceapă să se adune de la 0, dar nu de la un număr random plasat în memoria acestei adrese.
sirDumitru: Iar referitor la înmulțirea la 0.75, așa compilatorul procesează mai bine calculele, mai puține paranteze, mai puține operații, tu aveai de împărțit la 4 si apoi de înmulțit la 3, rezultă că trebuie să înmulțești la 3/4 ceea ce e 0.75
paulb007: MULTUMESC! Bune explicatii.
sirDumitru: Cu plăcere. Succes!
Răspuns de alexmarius83
0

Incearca sa scrii separat int med.

Alte întrebări interesante