Informatică, întrebare adresată de alex123490, 8 ani în urmă

int n, ok, m;
ok = 1;
m = n;
while (n != 0)
{
if (n < m)
ok = 0;
cout << n;
}
if (ok = 1)
cout << "DA";
else
cout << "NU";
Dc nu merge codul?


Minachan: Nu ai definit n, deci nu stie ce valoare sa atribuie lui m.
Si iti trebuie si o conditie de iesire din while, tu nu modifici valoarea lui n niciunde, de ce ai pune conditie ca n sa fie diferit de 0. Ori stergi cu totu blocu de while, ori pui o instructiune care sa iti modifice n-ul, de ex n=n/10.
Sa zicem sa rezolvi ambele chestii, dar daca de la inceput scri ca m = n atunci nici nu intra in if si doar o sa iti tipareasca valoarea lui n si apoi Da.

Răspunsuri la întrebare

Răspuns de lucaciucandrei
0

in primul rand, tu nu citesti nimic pentru n sau m

trebuie sa introduci un cin>>n;

apoi e problema in while ca se va executa la infinit, trebuie sa adaugi o instructiune care va rezulta la oprirea while-ului, depinde ce iti cere problema (ex: n--;)

la if-ul din while depinde daca cout<<n; il incadresi in if sau in while!!!

la ultimul if se scrie (ok==1) nu (ok=1), un singur egal atribuie valoarea 0 lui ok, in timp ce "==" verifica daca e egal sau nu

codul fixat

#include<iostream>

using namespace std;

int main(){

   int n, m, ok=1;

   cin>>n;

   m=n;

   do{

       if(n<m) ok=0;

       cout<<n;

       n--;

   }while(n!=0);

   if(ok==1) cout<<"DA";

   else cout<<"NU";

   return 0;

}

Alte întrebări interesante