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:
#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...
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