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


Cerința
Fiind dat un număr natural n înlocuiți toate aparițiile cifrei c1 din numărul n cu cifra c2.

Date de intrare
Programul citește de la tastatură numerele n, c1 și c2, separate prin spații.

Date de ieșire
Programul va afișa pe ecran numărul x, reprezentând numărul obținut prin înlocuirea cifrei c1 cu cifra c2.

Restricții și precizări
0 ≤ n ≤ 2000000000



Exemplu
Intrare

12523 2 7
Ieșire

17573
Explicație
S-a înlocuit cifra 2 cu cifra 7 în numărul 12523 și s-a obținut numărul 17573.


Oare puteti sa imi spuneti unde am gresit, de primesc doar 80 de puncte ?
Eu am facut programul asa:


#include

using namespace std;

int main()
{
long long n, c1=1, c2=1, d=1, S=0, c;
cin>>n;
cin>>c1;
cin>>c2;
while(n>0)
{
c=n%10;
if(c==c1) c=c2;
S = S + c*d;
d*=10;
n/=10;
}
cout< return 0;
}


andriesboss92: pbinfo / wellcode?
Niluco: pbinfo

Răspunsuri la întrebare

Răspuns de andriesboss92
2

int main()

{

   long long n, c1=1, c2=1, d=1, x=0, c;

   

   cin>>n>>c1>>c2;

   

   while(n>0)

   {

       c=n%10;

       if(c==c1)

           c=c2;

       x = x + c*d;

       d*=10;

       n/=10;

   }

   

   cout<<x;

}



Nu ai respectat cerinta. Iti spunea sa afisezi numarul x obtinut prin înlocuirea cifrei c1 cu cifra c2.


Niluco: tot 80 de puncte imi da !:
andriesboss92: Zi-mi numarul problemei
andriesboss92: Am gasit-o... Ai nevoie de caz in care n=0
andriesboss92: #include
using namespace std;

int main()
{
long long n,d=1,c1,c2,x=0,c;

cin>>n>>c1>>c2;

if(n==0)
{
cout< return 0;
}
else{

while(n>0)
{
c=n%10;

if(c==c1)
c=c2;

x = x + c*d;

d*=10;

n/=10;
}

cout< }
}
andriesboss92: cout< < x;
andriesboss92: si in if trebuie cout < < c2 ;
Niluco: am inteles ! mersiiii mult ! ^.^
Alte întrebări interesante