[C] Problema Ciclo While

di il
2 risposte

[C] Problema Ciclo While

Salve,
Sono nuovo del forum mi sono appena registrato!!! ...comunque ho questo esercizio da fare
Scrivi un programma C per trovare tutti i numeri decimali a tre
cifre per i quali la somma delle cifre sia esatto divisore del prodotto delle
cifre stesse.
#include <cstdlib>
#include <iostream>

using namespace std;

int main(int argc, char *argv[])
{
int vet[3],i,s,p,num;
scanf("%d",&num);
while(num>=100 && num<999){
    for(i=0;i<3;i++){
                      vet[i]=num-(num/10)*10;
                      num=num/10;
                      }
    s=0;
    for(i=0;i<3;i++)
       s += vet[i];
    p=1;
    for(i=0;i<3;i++)
       p *= vet[i];
    if (p%s==0)
       printf("La Somma e': %d, Il prodotto e' %d\n\n",s,p);           
    num = num + 1;
}  
    system("PAUSE");
    return EXIT_SUCCESS;
}
Io il programma l'ho creato ma cicla solo una volta nonostante abbia inserito l'incremento di num...nn so probabilmente, se non sicuramente sarà un errore stupidissimo ma non riesco a capire dovè ...Se potete per favore darmi una mano !!! Grz

2 Risposte

  • Re: [C] Problema Ciclo While

    Ho applicato alcune modifiche anche perchè il primo non era proprio esatto:
    #include <cstdlib>
    #include <iostream>
    
    using namespace std;
    
    int main(int argc, char *argv[])
    {
    int vet[3],i,s,p,num,a;
    num=100;
    while(num>=100 && num<=999){
    for(i=0;i<3;i++){
                  a=num;   
                          vet[i]=num-(num/10)*10;
                          num=num/10;
                          }
        s=0;
        for(i=0;i<3;i++)
           s += vet[i];
        p=1;
        for(i=0;i<3;i++)
           p *= vet[i];
        if (p%s==0)
           printf("La Somma e': %d, Il prodotto e' %d\n\n",s,p);
        a=a+1;
        num=a;
    }
    
        system("PAUSE");
        return EXIT_SUCCESS;
    }
    Pero niente di che cicla solo una volta.....
  • Re: [C] Problema Ciclo While

    Ho risoltooooooooooooooooo ...che soddisfazione averlo fatto da solo ...cmq avevo sbaglio a salvare il numero da incrementare infatti l'assegnazione l'avevo fatta nel primo ciclo for ...ke errore di .....lasciamo perdere
    
    #include <cstdlib>
    #include <iostream>
    
    using namespace std;
    
    int main(int argc, char *argv[])
    {
    int vet[3],i,s,p,num,a;
    num=100;
    while(num>=100 && num<=999){
    a=num; 
    for(i=0;i<3;i++){  
                          vet[i]=num-(num/10)*10;
                          num=num/10;
                          }
        s=0;
        for(i=0;i<3;i++)
           s += vet[i];
        p=1;
        for(i=0;i<3;i++)
           p *= vet[i];
        if (p%s==0)
           printf("La Somma e': %d, Il prodotto e' %d\n\n",s,p);
        a=a+1;
        num=a;
    }
    
        system("PAUSE");
        return EXIT_SUCCESS;
    }
    
Devi accedere o registrarti per scrivere nel forum
2 risposte