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

#include
using namespace std;

*/ Se dau doua numere naturale n si k si apoi n numere naturale.
Se sa afiseze suma numerelor care au suma cifrelor divizibila cu k */

int main()
{
int n, k, x, s, scif, i, c, y;
s=0;
cout<< "Introdu-l pe n: "; cin>> n;
cout<< "Introdu-l pe k: "; cin>> k;
for(i=1; i<=n; i++){
cout<< "x= "; cin>> x;
scif=0;
y=x;
while(x!=0){
c=x%10;
scif=scif+c;
x=x/10;
}
if(scif%k==0){
s=s+y;
}
}
cout<< "Suma numerelor care au suma cifrelor divizibile cu "<< k << " este "<< s <
return 0;
}

De ce nu iese din ciclul repetitiv (for) si ma pune sa citesc x chiar daca ii dau valoarea 0 ?


boiustef: nu inteleg despre ce eroare ai, deoarece codul e corect si lucreaza corect in afara de comentariul scris
*/ Se dau doua numere naturale n si k si apoi n numere naturale.
Se sa afiseze suma numerelor care au suma cifrelor divizibila cu k */
robertanisoiu: Ciclu il face de la 1 la n, indiferent ce valoare introduci. Daca n=3, sa zicem, su tu dai x=0 al doilea, el iti mai cere un numar pentru ca n=3. i=n este conditia de oprire, nu x=0
Dandy1552: Merci , acum mi-am dat seama. Introduceam un n foarte mare fara sa imi dau seama ca ciclul repetitiv se va opri doar cand i=n.. eram obosit :)

Răspunsuri la întrebare

Răspuns de alesia2k19
0

Te pune sa il citesti pe x de fiecare data deoarece l-ai scris in for si de fiecare data cand se termina actiunea programul cere sa il introduci pe x.

citeste-l in afara lui for si va merge

Alte întrebări interesante