Primo Precedente 2 di 2
  1. TaccidTaccid è offline #16
    24-06-10 00:18

    Codice:
    #include <iostream>
    #include <math.h>
    using namespace std;
    int main ()
    {
    int n;
     cout << "digita il numero da fattorizzare\n";
    cin >> n;
    switch (n=0)
    {
    case true:
    {
    cout << 1, "\n";
    break;
    }
    case false:
    {
    int a=n-1;
    while (a>0);
    {cout << n, "\n";
    n*=a;
    a--;
    }
    cout << a, "\n";
    break;
    }
    }
    }
    solo che qualunque sia l' input, l' output è sempre e solo 0-2.
    Rispondi con Citazione 

  2. L'avatar di doomersek doomersekdoomersek è offline #17
    24-06-10 01:09

    Citazione Taccid Visualizza Messaggio
    Codice:
    #include <iostream>
    #include <math.h>
    using namespace std;
    int main ()
    {
    int n;
     cout << "digita il numero da fattorizzare\n";
    cin >> n;
    switch (n=0)
    {
    case true:
    {
    cout << 1, "\n";
    break;
    }
    case false:
    {
    int a=n-1;
    while (a>0);
    {cout << n, "\n";
    n*=a;
    a--;
    }
    cout << a, "\n";
    break;
    }
    }
    }
    solo che qualunque sia l' input, l' output è sempre e solo 0-2.
    n=0 è un'assegnazione (assegni ad n il valore 0), invece bisogna fare una comparazione, cioè n==0, che ritorna true se n è uguale a 0 e false altrimenti
    detto questo, non ha senso fare uno switch con 2 soli casi, gli if ci sono apposta per questo, quindi:
    Codice:
    if(n==0)
      cout<<1;
    else {
      ...
    }
    poi non capisco perchè fai quella stampa dentro il ciclo while, questo provoca una serie di stampe in successione, tante quante volte il programma cicla, mentre all'utente si suppone interessi solo il risultato finale, che è n e non a...
    altra cosa: qui la libreria math.h non la usi, quindi puoi fare a meno di includerla
    EDIT: altro errore è il ; dopo il while, che non ci va, sennò lo blocchi subito
    EDIT2: di solito i cout si fanno cosi, ad esempio:
    Codice:
    cout << "1" << a << "ciao ciao" << n << endl;    /* i minori (<<) dividono le varie parti da stampare, endl manda a capo (come \n) */
    Rispondi con Citazione 

  3. TaccidTaccid è offline #18
    24-06-10 01:14

    Citazione doomersek Visualizza Messaggio
    n=0 è un'assegnazione (assegni ad n il valore 0), invece bisogna fare una comparazione, cioè n==0, che ritorna true se n è uguale a 0 e false altrimenti
    detto questo, non ha senso fare uno switch con 2 soli casi, gli if ci sono apposta per questo, quindi:
    Codice:
    if(n==0)
      cout<<1;
    else {
      ...
    }
    poi non capisco perchè fai quella stampa dentro il ciclo while, questo provoca una serie di stampe in successione, tante quante volte il programma cicla, mentre all'utente si suppone interessi solo il risultato finale, che è n e non a...
    altra cosa: qui la libreria math.h non la usi, quindi puoi fare a meno di includerla
    EDIT: altro errore è il ; dopo il while, che non ci va, sennò lo blocchi subito
    la stampa dentro il ciclo while è un errore mentre copiavo con emacs, mi sa asd
    in ogni caso, grazie, mi sei stato di grande aiuto
    Codice:
    #include <iostream>
    #include <math.h>
    using namespace std;
    int main ()
    {
    int n;
     cout << "digita il numero da fattorizzare\n";
    cin >> n;
    if (n==0)
    {
    cout << 1, "\n";
    }
    else
    {
    int a=n-1;
    while (a>0)
    n*=a;
    a--;
    }
    cout << n, "\n";
    }
    però, purtroppo, per tutti i numeri con valore assoluto maggiore di uno, il risultato non compare.
    Rispondi con Citazione 

  4. L'avatar di doomersek doomersekdoomersek è offline #19
    24-06-10 01:26

    mancano le parentesi del while, poi cerca di fare i cout come detto nel post sopra (edit2)
    Rispondi con Citazione 

  5. TaccidTaccid è offline #20
    24-06-10 01:35

    Citazione doomersek Visualizza Messaggio
    mancano le parentesi del while, poi cerca di fare i cout come detto nel post sopra (edit2)
    ora funziona. Mi dedicherò a migliorare la calcolatrice, grazie
    Rispondi con Citazione 

  6. SamFisher-92 #21
    24-06-10 11:31

    Ti conviene imparare o migliorare prima l'uso delle strutture come if , while, do while, for, switch. Magari aiutati con i diagrammi di flusso.
    Rispondi con Citazione 

 
Primo Precedente 2 di 2