Răspuns :
Problema este la afisarea cu 2 zecimale:
Ai 3 cazuri:
! - Media este numar intreg, asa ca trebuie sa afisezi un ".00" dupa ea.
II - Media are doar o cifra dupa virgula, asa ca mai trebuie sa afisezi un 0 dupa ea.
III - Media are doua sau mai multe cifre dupa virgula: aplici algoritmul
Tu ai omis cazul II:
#include <iostream>
#include <cmath>
using namespace std;
int n,d,NR,s,S1;
float ma,S;
int main(){
cin>>n;
for(d=1; d<=n; d++){
if(n%d==0){
s=s+d;
NR++;
}
}
ma=(float) s/NR;
if(ma==(int)ma) cout<<ma<<".00";
else if(ma * 10 == int(ma * 10)) cout<<ma<<'0';
else{
ma=ma*100;
S1=(int)ma;
S=( float) S1/100;
cout <<S;
}
return 0;
}
Ai 3 cazuri:
! - Media este numar intreg, asa ca trebuie sa afisezi un ".00" dupa ea.
II - Media are doar o cifra dupa virgula, asa ca mai trebuie sa afisezi un 0 dupa ea.
III - Media are doua sau mai multe cifre dupa virgula: aplici algoritmul
Tu ai omis cazul II:
#include <iostream>
#include <cmath>
using namespace std;
int n,d,NR,s,S1;
float ma,S;
int main(){
cin>>n;
for(d=1; d<=n; d++){
if(n%d==0){
s=s+d;
NR++;
}
}
ma=(float) s/NR;
if(ma==(int)ma) cout<<ma<<".00";
else if(ma * 10 == int(ma * 10)) cout<<ma<<'0';
else{
ma=ma*100;
S1=(int)ma;
S=( float) S1/100;
cout <<S;
}
return 0;
}
Vă mulțumim că ați vizitat platforma noastră dedicată Informatică. Sperăm că informațiile oferite v-au fost utile. Dacă aveți întrebări sau aveți nevoie de asistență suplimentară, nu ezitați să ne contactați. Așteptăm cu nerăbdare să vă revedem și nu uitați să ne salvați în lista de favorite!