Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Descarcator de supratensiune tip 2

Reparare "șanțuri&#...

De ce i se zice Mariei "Stapa...

Colet valoare Londra București
 BMW seria 3 rulat vs SsangYong Ko...

Share abonament Netflix

Cum pot sa fac rost de un negativ...

Lant Bicicleta
 Un designer artist: Raymond Loewy

ATS din contactor modular

Parere apartament ~150k

Limitare la 100mb/s
 Altercație

Cartonașe și stickere t...

Ciobanesc german - zgarda electro...

Ce este instalatia asta? (Valea B...
 

Subprogram care duplica cifrele impare

- - - - -
  • Please log in to reply
22 replies to this topic

#1
andreii4563

andreii4563

    Junior Member

  • Grup: Junior Members
  • Posts: 68
  • Înscris: 09.06.2019
Salut, am de scris un program care trebuie sa duplice cifrele impare ale unui numar, iar daca numarul nu are cifre impare, atunci afiseaza "nu exista". Eu am incercat sa il fac asa, dar nu imi da. Nu astept rezolvari, ci indicatii Posted Image (imi cer scuze daca nu am indentat codul corect Posted Image)

void duplicare (int n, int &d)
{
int x = n,p = 1,k = 1, nr, a[20];
while(x)
{
a[++k]=x%10;
x=x/10;
}
d=0;
for(int i = k; i > = 1; i - - )
{
if(a [i] % 2 ! = 0)
{
d = d * 10 + a[i], d = d * 10 + a [i];
nr++;
}
else
d =d * 10 + a[i];
}
if(nr==0)
cout << "nu exista";
}



#2
MarianG

MarianG

    be that as it may

  • Grup: Moderators
  • Posts: 31,477
  • Înscris: 10.08.2005
daca
cout << cifra ; 
afiseaza cifra, cum o afisezi de doua ori?

#3
sftpdt

sftpdt

    Senior Member

  • Grup: Senior Members
  • Posts: 3,677
  • Înscris: 29.08.2013

 andreii4563, on 24 noiembrie 2020 - 19:00, said:

void duplicare (int n, int &d)
{
int ..., nr, ...;


nr ce valoare are?

#4
andreii4563

andreii4563

    Junior Member

  • Grup: Junior Members
  • Posts: 68
  • Înscris: 09.06.2019

 MarianG, on 24 noiembrie 2020 - 19:11, said:

daca
cout << cifra ; 
afiseaza cifra, cum o afisezi de doua ori?
scuze, dar nu inteleg ce vrei sa spui
cred ca si oboseala isi face de cap, normal as fi stiut sa fac problema asta dar dupa aproape 12 ore de stat in ore online, nu prea mai am capacitati :P

 sftpdt, on 24 noiembrie 2020 - 19:13, said:


nr ce valoare are?
trebuia sa il initializez cu 0, am uitat

#5
MarianG

MarianG

    be that as it may

  • Grup: Moderators
  • Posts: 31,477
  • Înscris: 10.08.2005
este o intrebare cat de poate de directa,
avand codul respectiv  cum afisezi de doua ori aceasi cifra ?

#6
sags

sags

    Senior Member

  • Grup: Senior Members
  • Posts: 9,988
  • Înscris: 24.04.2013
Inca o observatie:
int … k = 1, …
…
while (…) {
	a[++k] = …
}
…
for (int i = k; i >= 1; i--) { … a[i] … }
Oare citesti exact cifre memorate in prealabil, nici mai multe nici mai putine si de exact de acolo de unde le-ai memorat?

#7
MarianG

MarianG

    be that as it may

  • Grup: Moderators
  • Posts: 31,477
  • Înscris: 10.08.2005
intrebarea este ce valoare are k la prima scriere

#8
andreii4563

andreii4563

    Junior Member

  • Grup: Junior Members
  • Posts: 68
  • Înscris: 09.06.2019

 MarianG, on 24 noiembrie 2020 - 19:46, said:

intrebarea este ce valoare are k la prima scriere
pai am declarat k=1

 sags, on 24 noiembrie 2020 - 19:44, said:

Inca o observatie:
int … k = 1, …
…
while (…) {
a[++k] = …
}
…
for (int i = k; i >= 1; i--) { … a[i] … }
Oare citesti exact cifre memorate in prealabil, nici mai multe nici mai putine si de exact de acolo de unde le-ai memorat?
mda cred ca am gresit acolo...
acum ca ma gandesc si la ce m-a intrebat MarianG, oare daca in loc sa creez un vector pe loc pun ultima cifra intr-un vector si maresc k-ul dupa ? scuze daca nu prea fac sens, dar sunt cam obosit si problema asta ma enerveaza :P

#9
sags

sags

    Senior Member

  • Grup: Senior Members
  • Posts: 9,988
  • Înscris: 24.04.2013
Executa programelul ‘de mana’ pentru un numar cu putine cifre si vezi (i) la ce indecsi pui cifrele, (ii) de la ce indecsi le preiei ulterior si mai ales/ ca o consecinta (iii) cate cifre citesti versus cate ai scris?

Si ca stil, in C/C++ indecsii incep de la zero nu de la unu. E bine sa te obisnuiesti asa, in caz contrar codul pe care il scrii tu va fi greu de citit si inteles de altii.

#10
andreii4563

andreii4563

    Junior Member

  • Grup: Junior Members
  • Posts: 68
  • Înscris: 09.06.2019

 sags, on 24 noiembrie 2020 - 20:06, said:

Executa programelul ‘de mana’ pentru un numar cu putine cifre si vezi (i) la ce indecsi pui cifrele, (ii) de la ce indecsi le preiei ulterior si mai ales/ ca o consecinta (iii) cate cifre citesti versus cate ai scris?

Si ca stil, in C/C++ indecsii incep de la zero nu de la unu. E bine sa te obisnuiesti asa, in caz contrar codul pe care il scrii tu va fi greu de citit si inteles de altii.
am inteles, ma apuc sa fac asta Posted Image

>indecsii incep de la 0 nu de la 1
serios? profa noastra ne-a zis mereu sa incepem de la 1 si sa mergem pana la n inclusiv* (am zis ca sunt obosit...)  Posted Image

Edited by andreii4563, 24 November 2020 - 20:09.


#11
MarianG

MarianG

    be that as it may

  • Grup: Moderators
  • Posts: 31,477
  • Înscris: 10.08.2005

 andreii4563, on 24 noiembrie 2020 - 19:59, said:

acum ca ma gandesc si la ce m-a intrebat MarianG, oare daca in loc sa creez un vector pe loc pun ultima cifra intr-un vector si maresc k-ul dupa ? scuze daca nu prea fac sens, dar sunt cam obosit si problema asta ma enerveaza Posted Image
initial te-am intrebat altceva,
cat despre k
in
a[++k]  =  ...

ce valoare are indexul respectiv ?

ai o functie void care afiseaza "text" cand nu ai cifre impare; ce afisezi cand ai cifre impare ?

Edited by MarianG, 24 November 2020 - 20:10.


#12
andreii4563

andreii4563

    Junior Member

  • Grup: Junior Members
  • Posts: 68
  • Înscris: 09.06.2019

 MarianG, on 24 noiembrie 2020 - 20:10, said:

initial te-am intrebat altceva,
cat despre k
in
a[++k]  =  ...

ce valoare are indexul respectiv ?

ai o functie void care afiseaza "text" cand nu ai cifre impare; ce afisezi cand ai cifre impare ?
pai pe k l-am declarat cu 1 in functie, iar cand am cifre impare, ar trebui sa afisez numarul
si acum ca ma gandesc mai bine nu am afisat numarul...

mda se pare ca eu am uitat sa afisez numarul...
mersi MarianG pt ca mi-ai atras atentia :)

si va multumesc tuturor ca m-ati ajutat :D

ce face oboseala din om...

#13
MarianG

MarianG

    be that as it may

  • Grup: Moderators
  • Posts: 31,477
  • Înscris: 10.08.2005
++k != k++

Edited by MarianG, 24 November 2020 - 20:17.


#14
sags

sags

    Senior Member

  • Grup: Senior Members
  • Posts: 9,988
  • Înscris: 24.04.2013
@andreii4563: Pe k l-ai initializat cu 1, da’ ii mai aplici si un operator… Ce face, exact, acel operator? Si ce index ajungi sa folosesti?

Edited by sags, 24 November 2020 - 20:32.


#15
andreii4563

andreii4563

    Junior Member

  • Grup: Junior Members
  • Posts: 68
  • Înscris: 09.06.2019

 MarianG, on 24 noiembrie 2020 - 20:16, said:

k != ++k != k++
da stiu...
am incercat sa ma dau interesant, dar nu prea mi-a reusit
am schimbat codul:
while(x)
{
a[k]= x % 10;
x = x / 10;
k++;
}
k--;

 sags, on 24 noiembrie 2020 - 20:18, said:

Pe k l-ai initializat cu 1, da’ ii mai aplici si un operator… Ce face, exact, acel operator? Si ce index ajungi sa folosesti?
da, intr-un final mi-am dat seama ca de fapt eu nu faceam nimic cu vectorul ala...

#16
MarianG

MarianG

    be that as it may

  • Grup: Moderators
  • Posts: 31,477
  • Înscris: 10.08.2005
Si totusi,
ai un numar, pe care il parcurgi cifra cu cifra, si vrei sa dublezi cifrele impare

ce tip de date este rezultatul final ?

#17
sags

sags

    Senior Member

  • Grup: Senior Members
  • Posts: 9,988
  • Înscris: 24.04.2013
@andreii4563: Cum adica nu faceai nimic cu vectorul? Il folosesti mai tarziu sa calculezi ceva (pe care intr-adevar uiti sa il si afisezi), doar ca in calcul intra si un a[1] care nu primea nici o valoare.

Edited by sags, 24 November 2020 - 20:32.


#18
andreii4563

andreii4563

    Junior Member

  • Grup: Junior Members
  • Posts: 68
  • Înscris: 09.06.2019

 MarianG, on 24 noiembrie 2020 - 20:24, said:

Si totusi,
ai un numar, pe care il parcurgi cifra cu cifra, si vrei sa dublezi cifrele impare

ce tip de date este rezultatul final ?
pai, int nu? Posted Image

 sags, on 24 noiembrie 2020 - 20:25, said:

Cum adica nu faceai nimic cu vectorul? Il folosesti mai tarziu sa calculezi ceva (pe care intr-adevar uiti sa il si afisezi), doar ca in calcul intra si un a[1] care nu primea nici o valoare.
la asta ma refeream

Anunturi

Neurochirurgie minim invazivă Neurochirurgie minim invazivă

"Primum non nocere" este ideea ce a deschis drumul medicinei spre minim invaziv.

Avansul tehnologic extraordinar din ultimele decenii a permis dezvoltarea tuturor domeniilor medicinei. Microscopul operator, neuronavigația, tehnicile anestezice avansate permit intervenții chirurgicale tot mai precise, tot mai sigure. Neurochirurgia minim invazivă, sau prin "gaura cheii", oferă pacienților posibilitatea de a se opera cu riscuri minime, fie ele neurologice, infecțioase, medicale sau estetice.

www.neurohope.ro

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

Forumul Softpedia foloseste "cookies" pentru a imbunatati experienta utilizatorilor Accept
Pentru detalii si optiuni legate de cookies si datele personale, consultati Politica de utilizare cookies si Politica de confidentialitate