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ă. Ne bucurăm dacă informațiile v-au fost de folos. În cazul în care aveți întrebări suplimentare sau doriți sprijin adițional, nu ezitați să ne contactați. Revenirea dumneavoastră ne onorează, iar dacă apreciați conținutul nostru, vă invităm să ne salvați în lista de site-uri preferate!