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 pentru vizita pe site-ul nostru dedicat Informatică. Ne dorim ca informațiile furnizate să vă fi fost utile. Dacă aveți întrebări sau aveți nevoie de suport suplimentar, nu ezitați să ne contactați. Revenirea dumneavoastră ne bucură, iar pentru acces rapid, adăugați-ne la favorite!