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

50 PONCTE. Trebuie sa scriu un algoritm care imi extrage cifra maxima dintr-un numar de 3 cifre. Eu l-am facut, insa cand il compilez imi da un numar IMENS!
#include

using namespace std;
int x, c1, c2, c3;
int main()
{
int max;
cout << "Introduceti un numar de 3 cifre: \n";
cin >> x;
c1 = x / 100;
c2 = x / 10 % 10;
c3 = x % 10;
c1 = max;
if(c2 > max)
max = c2;
if(c3 > max)
max = c3;
cout << "Cifra maxima a numarului este: ";
cout << max;
return 0;

}

Răspunsuri la întrebare

Răspuns de sirDumitru
1

După ce am compilat am introdus doar biblioteca <iostream> și am schimbat

rândul 13 : max=c1;

#include <iostream>


using namespace std;

int x, c1, c2, c3;

int main()

{

int max;

cout << "Introduceti un numar de 3 cifre: \n";

cin >> x;

c1 = x / 100;

c2 = x / 10 % 10;

c3 = x % 10;

max=c1;

if(c2 > max)

max = c2;

if(c3 > max)

max = c3;

cout << "Cifra maxima a numarului este: ";

cout << max;

return 0;


}


Horatiu2002: biblioteca a disparut la copy paste :)))
Horatiu2002: imi poti explica de ce influenteaza atat de mult inversarea aceea?
sirDumitru: Oricum, am testat, dacă tot îți dă eroare sau număr imens, schimbă compilatorul.
Horatiu2002: nu i nevoie, merge, ms
sirDumitru: Deoarece tu atribui lui c1 valoarea lui max, practic vorbind, această mișcare șterge din memoria adresei lui c1, valoarea acesteia și îi atribuie lui c1 valoarea lui max, valoare pe care max nu o are, în acest caz compilatorul îi atribuie o valoare random care vrea el, în dependență de compilator.
Horatiu2002: am inteles, thx
sirDumitru: Cu plăcere!
Alte întrebări interesante