Pagini: [1]   În jos
  Imprimă  
Ajutor Subiect: cifre comune pentru doua numere  (Citit de 9286 ori)
0 Utilizatori şi 1 Vizitator pe acest subiect.
crash
Strain


Karma: -1
Deconectat Deconectat

Mesaje: 10



Vezi Profilul
« : Martie 17, 2013, 22:14:15 »

Salut!
Sunt beginner in ale C-ului si am o problema. Nu stiu ce gresesc! Trebuie sa aflu cate cifre comune au doua numere citite de la tastatura. De exemplu, pt 21348 si 14513 sa rezulte 3 cifre comune (2,3,4).
Asta am facut eu, dar imi numara inclusiv aparitiile duble ale unei cifre. Adica daca e 1 in primul numar o data si de doua ori in al doilea imi numara doua cifre comune.
#include<stdio.h>
#include<conio.h>

void main(){
long int n1,n2;
int m1,m2,k=0,nr,s=0;
printf("n1=");scanf("%ld",&n1);
printf("n2=");scanf("%ld",&n2);
nr=n2;
while(n1>0){
m1=n1%10;
while(n2>0){
m2=n2%10;
if(m1==m2) k=1;
n2=n2/10;
}
if(k==1) s=s+1;
n1=n1/10;
n2=nr;
}
printf("%d",s);
getch();
}
Memorat
NicuCJ
Strain
*

Karma: 6
Deconectat Deconectat

Mesaje: 44



Vezi Profilul
« Răspunde #1 : Martie 18, 2013, 10:34:01 »

In primul rand nu trebuia sa postezi aici, ci la sectiunea "Informatica", dar probabil iti va muta un admin thread-ul.
Problema se rezolva asa, daca nu stii vectori:
- Parcurgi cifrele de la 0 la 9
- Verifici daca cifra i se gaseste in cele doua numere
- Ai grija sa nu strici numele, fiindca apoi la pasul urmator nu mai poate sa afle programul cifrele comune.

O implementare a unui astfel de cod fara vectori ar fi asta: (n-am mai declarat variabile etc., l-am scris direct, te descurci tu probabil)
Cod:
for(i=0; i<=9; i++)
{
aux=n;
aux2=m;
okn=0;
okm=0;
while(aux)
{
if(aux%10==i)
okn=1;
aux/=10;
}
while(aux2)
{
if(aux2%10==i)
okm=1;
aux2/=10;
}
if(okn && okm)
cout<<i<<" ";
}
Memorat
crash
Strain


Karma: -1
Deconectat Deconectat

Mesaje: 10



Vezi Profilul
« Răspunde #2 : Martie 18, 2013, 15:55:31 »

Da, algoritmul tau functioneaza. Multumesc! Acum am inteles si ce hibe avea al meu! 
Memorat
Pagini: [1]   În sus
  Imprimă  
 
Schimbă forumul:  

Powered by SMF 1.1.19 | SMF © 2006-2013, Simple Machines