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

Se consideră definite următoarele subprograme:
- p1 care primeşte prin intermediul parametrului n un număr natural cu cel mult 8 cifre şi returnează suma cifrelor numărului n
Exemplu: dacă n este egal cu 1234 valoarea returnată de subprogram va fi 10.
-p2 care primeşte prin intermediul parametrului n un număr natural cu cel mult 8 cifre, şi returnează numărul obţinut prin eliminarea ultimei cifre a lui n.
Exemplu: dacă n este egal cu 1234 valoarea returnată de subprogram va fi 123.
a) Scrieţi numai antetul subprogramelor p1 şi p2.

b) Scrieţi un program C/C++ care citește de la tastatură un număr natural nenul n cu cel mult 8 cifre şi determină, prin apeluri utile ale subprogramelor p1 şi p2, numărul de cifre egale cu 0 din scrierea lui n. Programul va afişa pe ecran numărul obţinut.
Exemplu: dacă n este 102030, programul va afişa valoarea 3.

Răspunsuri la întrebare

Răspuns de danielpetrupasc
0

Răspuns:

a) Antetele subprogramelor p1 și p2 ar putea arăta astfel:

int p1(int n);

int p2(int n);

b) Un program C/C++ care rezolvă cerința ar putea arăta astfel:

#include <stdio.h>

int p1(int n);

int p2(int n);

int main()

{

int n;

printf("Introduceti un numar natural nenul n: ");

scanf("%d", &n);

int count = 0; // contorul pentru cifrele 0

while (n > 0) // cat timp mai sunt cifre in numarul n

{

   if (n % 10 == 0) // daca ultima cifra din n este 0

       count++; // incrementam contorul

   n = p2(n); // eliminam ultima cifra din n

}

printf("Numarul de cifre egale cu 0 din scrierea lui n este: %d\n", count);

return 0;

}

int p1(int n)

{

int sum = 0; // suma cifrelor din n

while (n > 0) // cat timp mai sunt cifre in n

{

   sum += n % 10; // adaugam ultima cifra din n la suma curenta

   n /= 10; // eliminam ultima cifra din n

}

return sum;

}

int p2(int n)

{

return n / 10; // returnam numarul obtinut prin eliminarea ultimei cifre din n

}

Explicație:

Sper să ajute.

Alte întrebări interesante