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

URGENT! Se da un numar natural N. A doua cifra trebuie interschimbata cu penultima. In C++ va rog. Mersi​

Răspunsuri la întrebare

Răspuns de boiustef
3

Răspuns:

#include <iostream>

using namespace std;

int n, d,p,m,rez, i,j,c;

int main()

{

   cin >> n;

   if (n<10) cout << "nu-i posibil...";

   else

   {

       if (n<1000) rez=n;

       else

       {

           m=n;

           while (m>9)

           {

               c=m%10; ++i;

               if (i==2) p=c;

               m/=10;

           }

           d=c;

           ++i; m=n;

           cout << p << " " << d << " " << i << endl;

           int z=1;

           for (j=1; j<=i; j++)

           {

               c=m%10;

               if (j==2) c=d;

               if (j==i-1) c=p;

               rez=c*z+rez;

               z*=10;

               m/=10;

           }

       }

       cout << rez;

   }

}

Explicație:

cu vectori era mai simplu...   evit permanent vectorii cât e posibil .. :)))

Sper codul să fie explicit..

Variabile:

i - pentru nr. de cifre a lui n.

d, p - a doua și penultima cifră

c - cifra curent calculată

rez - numărul nou creat după interschimbare

m - variabilă de lucru...


tryall20: poti sa scrii te rog fara for? trebuie sa scriu numai cu while si if , else.
boiustef: deacum nu mai am acces...
dar e simplu..
în loc de linia for sctii
j=1;
while (j <= i)
{
.....
++j;
}
bucla lui for rămâne pentru while, doar se adaugă spre spre sfârșitul ei ++j; ata pui după m/=10; de la for
Alte întrebări interesante