Am o problema la info care imi cere media aritmetica a numerelor pare si impare intre 5 numere care se dau de la tastatura. Problema trebuie facuta doar cu instructiunea IF. Eu am facut problema dar nu imi da corect. Var rog daca stiti sa imi spuneti ce am gresit...
#include
using namespace std;
int main()
{
int a,b,c,d,e,au,bu,cu,du,eu,ap=0,ai=0,bp=0,bi=0,cp=0,ci=0,dp=0,di=0,ep=0,ei=0,mp,mi,p=0,i=0;
cin >>a>>b>>c>>d>>e;
cout <<"Media aritmetica numerelor pare este :"<<" "<
cout <<"Media aritmetica numerelor impare este :"<<" "<
au=a%10;
bu=b%10;
cu=c%10;
du=d%10;
eu=e%10;
mp=(ap+bp+cp+dp+ep)/p;
mi=(ai+bi+ci+di+ei)/i;
if (au==0 or au==2 or au==4 or au==6 or au==8){
p++;
ap=a;
}
else {
i++;
ai=a;
}
if (bu==0 or bu==2 or bu==4 or bu==6 or bu==8) {
p++;
bp=b;
}
else {
i++;
bi=b;
}
if (cu==0 or cu==2 or cu==4 or cu==6 or cu==8) {
p++;
cp=c;
}
else {
i++;
ci=c;
}
if (du==0 or du==2 or du==4 or du==6 or du==8) {
p++;
dp=d;
}
else {
i++;
di=d;
}
if (eu==0 or eu==2 or eu==4 or eu==6 or eu==8) {
p++;
ep=e;
}
else {
i++;
ei=e;
}
return 0;
}
Răspunsuri la întrebare
Programul scris de tine are multe greseli si nu are sens sa il corectez.
Am scris eu un algoritm pentru aceasta problema.
#include <iostream>
using namespace std;
int main()
{
int a,b,c,d,e,cf=0,ci=0;
float mf=0,mi=0;
cin>>a;
if(a%2==0)
{
mf=mf+a;
cf++;
}
else
{
mi=mi+a;
ci++;
}
cin>>b;
if(b%2==0)
{
mf=mf+b;
cf++;
}
else
{
mi=mi+b;
ci++;
}
cin>>c;
if(c%2==0)
{
mf=mf+c;
cf++;
}
else
{
mi=mi+c;
ci++;
}
cin>>d;
if(d%2==0)
{
mf=mf+d;
cf++;
}
else
{
mi=mi+d;
ci++;
}
cin>>e;
if(e%2==0)
{
mf=mf+e;
cf++;
}
else
{
mi=mi+e;
ci++;
}
mf=mf/cf;
mi=mi/ci;
cout<<"Media aritmetica a numerelor pare este: "<<mf<<endl;
cout<<"Media aritmetica a numerelor impare este: "<<mi<<endl;
return 0;
}