Problema in programma in C
  • In diretta da GamesVillage.it
    • News
    • -
    • In Evidenza
    • -
    • Recensioni
    • -
    • RetroGaming
    • -
    • Anteprime
    • -
    • Video
    • -
    • Cinema

Pag 1 di 3 123 UltimoUltimo
Visualizzazione risultati da 1 a 15 di 43

Discussione: Problema in programma in C

Cambio titolo
  1. #1
    :D L'avatar di Xboxman
    Registrato il
    09-03
    Località
    Napoli
    Messaggi
    7.867

    Problema in programma in C

    Allora, ho creato questo programma che, dato un numero intero, dovrebbe fare la metà se è pari, o il doppio se è dispari, ma dev c continua a darmi errore:

    #include<stdio.h>
    #include<stdlib.h>
    int main()
    {
    int n=0;
    printf("Inserisci un numero\n");
    scanf("%d",&n);
    if (n%2=0) printf("La meta' e' %d\n",n/2);
    else printf("Il doppio e' %d\n",n*2);
    system("pause");
    return 0;
    }



    Cosa c'&#232; di sbagliato?
    A cosa serve la libreria stdlib? Se la tolgo?
    Un'altra cosa... a cosa serve esattamente return 0?
    Ultima modifica di Xboxman; 12-05-2007 alle 10:36:45

  2. #2
    java is forever
    Ospite
    Citazione Xboxman
    Allora, ho creato questo programma che, dato un numero intero, dovrebbe fare la met&#224; se &#232; pari, o il doppio se &#232; dispari, ma dev c continua a darmi errore:

    #include<stdio.h>
    #include<stdlib.h>
    int main()
    {
    int n=0;
    printf("Inserisci un numero n");
    scanf("%d",&n);
    if (n%2=0) printf("La meta' e' %d n",n div 2);
    else print("Il doppio e' %d n",n*2);
    system("pause");
    return 0;
    }

    Cosa c'&#232; di sbagliato?

    Per la divisione si usa / e non div. Ovviamente se i numeri sono interi il risulato sara' troncato.
    Per un confronto si usa == e non =.

    Codice PHP:
    #include <stdio.h>
    #include <stdlib.h>

    int main()
    {
        
    int n 0;

        
    printf("Inserisci un numero n: ");
        
    scanf("%d", &n);

        if ((
    2) == 0)
        {
            
    printf("La meta\' e\' %d"2);
        }
        else
        {
            
    printf("Il doppio e\' %d"2);
        }

        
    system("pause");
        return 
    0;

    Citazione Xboxman
    A cosa serve la libreria stdlib? Se la tolgo?
    Un'altra cosa... a cosa serve esattamente return 0?
    return 0 dice al sistema operativo che il programma e' terminato correttamente mentre la stdlib.h serve per usare la system().
    Ultima modifica di java is forever; 12-05-2007 alle 10:45:34

  3. #3
    :D L'avatar di Xboxman
    Registrato il
    09-03
    Località
    Napoli
    Messaggi
    7.867
    Allora, ho corretto il programma, e ho aggiunto le virgolette all'inizio e alla fine della condizione dopo l'if tra parentesi e non mi da errore... però quando avvio il programma, sia che inserisco un numero pari, o un numero dispari, mi fa sempre e solo la metà ._______.

    Non esiste un comando simile al readln in Pascal? system("pause") è brutto, perchè se io volessi decidere di non far apparire sullo schermo "premere un tasto per continuare"?

  4. #4
    :D L'avatar di Xboxman
    Registrato il
    09-03
    Località
    Napoli
    Messaggi
    7.867
    Citazione java is forever
    Per la divisione si usa / e non div. Per un confronto si usa == e non =

    Codice PHP:
    #include<stdio.h>
    #include<stdlib.h>

    int main()
    {
        
    int n 0;

        
    printf("Inserisci un numero n: ");
        
    scanf("%d", &n);

        if ((
    2) == 0)
        {
            
    printf("La meta' e' %d"[B]/[/B2);
        }
        else
        {
            
    printf("Il doppio e' %d"2);
        }

        
    system("pause");
        return 
    0;



    return 0 dice al sistema operativo che il programma e' terminato correttamente mentre la stdlib.h serve per usare la system().

    Bene grazie mille. Per favore rispondi all'altra mia domanda!

  5. #5
    :D L'avatar di Xboxman
    Registrato il
    09-03
    Località
    Napoli
    Messaggi
    7.867
    Ho altre 2 domande da farvi:

    1) A cosa serve quell' "int" prima di main? Su internet vedo che in quasi tutti i programmi non c'è int. Cosa cambia?

    2) Se non metto return 0 cosa cambia?

  6. #6
    java is forever
    Ospite
    Citazione Xboxman
    Ho altre 2 domande da farvi:

    1) A cosa serve quell' "int" prima di main? Su internet vedo che in quasi tutti i programmi non c'è int. Cosa cambia?

    2) Se non metto return 0 cosa cambia?
    1) indica il tipo del valore di ritorno. Se non si mette niente di default e' int (mi pare )

    2) In teoria non cambia nulla, verra' restituito un valore casuale

  7. #7
    :D L'avatar di Xboxman
    Registrato il
    09-03
    Località
    Napoli
    Messaggi
    7.867
    Citazione java is forever
    1) indica il tipo del valore di ritorno. Se non si mette niente di default e' int (mi pare )

    2) In teoria non cambia nulla, verra' restituito un valore casuale

    Senti, ma se voglio bloccare il programma senza mettere quell'odioso system("pause")? Cosa posso mettere?

  8. #8
    java is forever
    Ospite
    Citazione Xboxman
    Non esiste un comando simile al readln in Pascal? system("pause") &#232; brutto, perch&#232; se io volessi decidere di non far apparire sullo schermo "premere un tasto per continuare"?
    Lo so, e' bruttissimo e non portabile.

    Prova con

    Codice PHP:
    printf("Premi un tasto per continuare...");
    scanf("%*c"); 
    L'ho appena provato (su mac os x) e funziona
    Ultima modifica di java is forever; 12-05-2007 alle 11:02:08

  9. #9
    :D L'avatar di Xboxman
    Registrato il
    09-03
    Località
    Napoli
    Messaggi
    7.867
    Citazione java is forever
    Lo so, e' bruttissimo e non portabile.

    Prova con

    Codice PHP:
    printf("Premi un tasto per continuare...");
    scanf("%*c"); 
    L'ho appena provato (si mac os x) e funziona

    No io intendo non far apparire la scritta "Premi un tasto per continuare".
    Come ad esempio nel pascal bisogna mettere un semplice readln, mentre in C non esiste

  10. #10
    java is forever
    Ospite
    Citazione Xboxman
    No io intendo non far apparire la scritta "Premi un tasto per continuare".
    Come ad esempio nel pascal bisogna mettere un semplice readln, mentre in C non esiste
    Togli il printf

  11. #11
    :D L'avatar di Xboxman
    Registrato il
    09-03
    Località
    Napoli
    Messaggi
    7.867
    Un'altra domanda: bisogna per forza inizializzare a 0 le variabili che si dichiarano?

  12. #12
    :D L'avatar di Xboxman
    Registrato il
    09-03
    Località
    Napoli
    Messaggi
    7.867
    Citazione java is forever
    Togli il printf
    Già fatto, ma in questo modo appena che inserisco tutti i valori di input, non mi fa vedere nessun risultato, dato che il programma subito si chiude.

  13. #13
    java is forever
    Ospite
    Citazione Xboxman
    Già fatto, ma in questo modo appena che inserisco tutti i valori di input, non mi fa vedere nessun risultato, dato che il programma subito si chiude.
    Strano, ho appena provato e funziona perfettamente...
    Prima di quell'istruzione prova a mettere
    Codice PHP:
    fflush(stdin); 

  14. #14
    java is forever
    Ospite
    Citazione Xboxman
    Un'altra domanda: bisogna per forza inizializzare a 0 le variabili che si dichiarano?
    Puoi inizializzarle al valore che vuoi, ma se non le inizializzi contengono valori casuali. Fanno eccezione le variabili static, inizializzate a zero di default (se non impostato diversamente).

  15. #15
    :D L'avatar di Xboxman
    Registrato il
    09-03
    Località
    Napoli
    Messaggi
    7.867
    Citazione java is forever
    Strano, ho appena provato e funziona perfettamente...
    Prima di quell'istruzione prova a mettere
    Codice PHP:
    fflush(stdin); 
    Grazie mille, così funziona!

Pag 1 di 3 123 UltimoUltimo

Regole di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •