Informatică, întrebare adresată de Rιкα, 9 ani în urmă

Corectati-mi algoritmul pentru : Se dau n numere sa se afiseze cate sunt pare si cate sunt impare.
#include

using namespace std;

int main()
{ int n,k=0,q=0,i,a;
cin>>n;
{ for(i=1;i<=n;i++)
cout<<"Introduceti numar="<endl; 
cin>>a;
if (a%2=0)
k=k+1;
else(a%2=!0)
q=q+1;
}
cout<<"Numarul de numere pare="<<k;
cout<<"Numarul de numere impare="<<q;
 return 0;
}

Răspunsuri la întrebare

Răspuns de Utilizator anonim
1
#include <iostream>
using namespace std;
int main()
{
 int n,k=0,q=0,i,a;
cin>>n;
for(i=1;i<=n;i++)
{
cout<<"Introduceti numar="<<endl;  
cin>>a;
if (a%2==0)
{
k=k+1;
}
else
{
q=q+1;
}
}
cout<<"Numarul de numere pare="<<k;
cout<<"Numarul de numere impare="<<q; 
system("pause"); 
return 0;}
Răspuns de blindseeker90
2
Semnul egal are inteles de atribuire. Deci atunci cand spui ca a%2=0 programul atribuie restul 0 operatiei respective, conditia este considerata a fi indeplinita, si va merge intotdeauna pe ramura primului if, niciodata pe ramura de else. Programul va produce la sfarsit k=n si q=0
Pentru a face o comparatie intre 2 valori trebuie sa folosesti ==. Pentru a face o comparatie de inegalitate, semnul corect este !=, nu =!
De asemenea, conditia de else nu contine si explicitarea ei.
un numar poate sa fie par sau impar, daca pui conditia sa fie par la prima, else contine implicit pe cea de impar

Deci codul corect ar fi
if(a%2==0)
k=k+1;
else
q=q+1;

sau

if(a%2!=0)
q=q+1;
else
k=k+1;

Rιкα: Multumesc :)
Alte întrebări interesante