infoarena

infoarena - concursuri, probleme, evaluator, articole => Teme => Subiect creat de: A Cosmina - vechi din Februarie 22, 2009, 18:50:50



Titlul: cifre care alterneaza
Scris de: A Cosmina - vechi din Februarie 22, 2009, 18:50:50
Se introduce un numar de la tastaura un numar. Sa se verifice daca la scrierea lui cifrele pare si impare alterneaza.

Cod:
#include <iostream.h>
main()
{
int a,k,c,c1;
cout<<"Dati nr: ";
cin>>a;
k=1;
while (a)
{
c=a%10;
c1=a%100;
if ( (c+c1) %2!=0) a=a/10;
else k=0;
if (k==0) {
             cout<<"nu alterneaza";
             break;
             }
else cout<<"alterneaza";
}
}


Eu am gandit asa:
iau o constatnta k care la inceput e 1, adic apornesc de la premiza ca cifrele alterneaza. daca suma ultimelor 2 este para, cifrele nu alterneaza: k devine0 (fals). afisez mesaj corespunzator si iese. daca suma ultimelor 2 cifre este impara ii tai ultime cira lui a. s.a.m.d.
Eu daca introduc:
a=123456 ->> nu alterneaza.
De ce ?Ce nu-i bine?  ???


Titlul: Răspuns: cifre care alterneaza
Scris de: Gabriel Bitis din Februarie 22, 2009, 19:41:25
Cod:
c=a%10;
c1=a%100;
if ( (c+c1) %2!=0) a=a/10;
else k=0;
Asta nu e bine..
Pt exemplul tau, adica 123456, c = 123456 % 10 = 6 si c1 = 123456 % 100 = 56. Daca faci c1 = (a / 10) % 10 ar trebui sa iasa.

FA SI SINGUR UN PIC DE DEBUG !!!


Titlul: Răspuns: cifre care alterneaza
Scris de: alexandru din Februarie 22, 2009, 20:24:35
s-au  n-ar fi mai usor sa reti  numarul intr-un vector de tip char?
Si are dreptate  ,  din cand in cand nu strica  o mica rulare pas cu pas, pe mine m-a ajuta foarte mult la oli de anul trecut:P


Titlul: Răspuns: cifre care alterneaza
Scris de: A Cosmina - vechi din Februarie 22, 2009, 21:36:02
multumesc frumos :)