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

Dela tastatura să citească o secvență de n numere naturare, și 2 numere p și k

Elaborați un program prin intermediul căruia se va afișa câte numere din secvență citită împărțirea la p dau rest k

Varog în limbajul de programare C.

Răspunsuri la întrebare

Răspuns de andriesboss92
1

Răspuns:

#include <stdio.h>

int main()

{

   int n, p, k, nr=0, x;

   printf("n = "); scanf("%d",&n);

   printf("p = "); scanf("%d",&p);

   printf("k = "); scanf("%d",&k);

   

   if(n==0)

       printf("Nu exista numere!");

       

   while(n!=0)

   {

       scanf("%d",&x);

       if( x % p == k )

           nr ++;

       

       n--;

   }

   if(nr==0)

       printf("Nu exista numere care prin impratirea la %d au restul %d", p, k);

   else

       if(nr==1)

           printf("Un singur numar se imparte la %d si da restul %d", p, k);

       else

           printf("%d numere au restul %d prin impratirea la %d", nr, k, p);

   

}

Explicație:

Pentru a înțelege care este diferenta intre "/" ( div ) si "%" ( mod ) vezi aici: https://brainly.ro/tema/5236863 sau din alte surse.

Deși scrie "c++" tot ce scrie acolo este valabil și pentru limbajul C.

Legat de programul de mai sus.

Dupa ce intelegi ce face MOD o sa iti dai seama ca secventa

if( x % p == k ) verifica daca restul impartirii numarului x la p reprezinta valoarea atribuita variabilei k.

Algoritmul citeste numerele n, p, k.

Citeste n numere pana cand n are valoarea 0 si efectueaza numararea acelor numere care prin impartirea la p au restul k.

Algoritmul este mai eficient deoarece rezolvarea problemei se realizeaza in timpul citirii fiecarui numar astfel incat nu este nevoie sa folosim tablouri unidimensionale ( vectori ).

Alte întrebări interesante