Pagina 2 di 2 primaprima 1 2
Visualizzazione dei risultati da 11 a 20 su 20

Discussione: [c]Problema con if

  1. #11
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    1,326
    Originariamente inviato da gennahouse
    Xcode dice
    quindi stai su Mac. Lascia perdere fflush(), il suo comportamento su stdin non è definito dallo standard quindi non è portabile, e infatti col tuo compilatore non va.

    codice:
    #include <stdio.h>
    #include <string.h>
    int main () {
    
    	int primo, terzo;
    	char secondo;
    	printf ("Primo numero:\n");
    	scanf ("%d", &primo);
    	while (getchar() != '\n');
    	printf("Che tipo di operazione\? scegli tra:\n");
    	printf("* moltiplicazione\n");
    	printf("/ divisione\n");
    	printf("- sottrazione\n");
    	printf("+ addizione\n");
    	scanf("%c", &secondo);
    	printf("Ora digita il terzo numero\n");
    	scanf("%d", &terzo);
    	
    	if(secondo == '*') {
    		printf("Il risultato è: %d", primo * terzo);
    	} else if (secondo == '/') {
    		printf("Il risultato è: %d", primo / terzo);
    	}
    
    	
    	return  0;
    }
    every day above ground is a good one

  2. #12
    Ciao grazie per la risposta, ho alcune domande, tu hai scritto nel codice anche il string.h, ma da quando avevo capito non serve piu ora giusto?

    seconda domanda ora riesco a inserire sia il primo numero, il secondo è anche l'operatore, ma perche non mi stampa il risultato?
    ho provato con un applicazione visto che è impostata... ma nulla.


    un altra domanda, qua dice: while (getchar() != '\n'); che finche non chiede la char secondo non deve andare a capo?

    poi sai una guida dove spiega bene la differenza tra %c e s%?


    grazie mille

  3. #13
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    1,326
    Originariamente inviato da gennahouse
    Ciao grazie per la risposta, ho alcune domande, tu hai scritto nel codice anche il string.h, ma da quando avevo capito non serve piu ora giusto?
    In realtà ho copiato pari pari il tuo codice e ho aggiunto solo la riga in rosso, quindi non ho controllato altro. Comunque sì, string.h non serve.

    Originariamente inviato da gennahouse
    seconda domanda ora riesco a inserire sia il primo numero, il secondo è anche l'operatore, ma perche non mi stampa il risultato?
    ho provato con un applicazione visto che è impostata... ma nulla.
    perché forse hai provato il codice come l'avevo postato all'inizio prima della modifica che ho fatto qualche minuto dopo (avevo inserito la riga nel posto sbagliato). Prova il codice che leggi ora nel post di sopra e non dovresti avere problemi. Se li hai ancora, dillo.

    Originariamente inviato da gennahouse
    un altra domanda, qua dice: while (getchar() != '\n'); che finche non chiede la char secondo non deve andare a capo?
    E' una questione trattata ormai decine di volte su questo forum e altrove... il punto è che le funzioni di input standard in C (come la scanf()) sono bufferizzate, significa che l'input viene prima salvato in un buffer (memoria temporanea) e poi, alla fine dell'immisione (segnata dalla pressione del tasto INVIO) si salva quanto scritto nella variabile specificata. Ora il problema è che quel tasto INVIO, che corrisponde al carattere newline, spesso viene salvato anch'esso nel buffer e non viene scartato, quindi quando ti ritrovi all'istruzione di input successiva nel buffer hai già un newline e l'istruzione ti viene saltata, perché di fatto è come se avessi premuto subito INVIO senza scrivere nulla.
    L'istruzione in rosso non fa altro che leggere i dati rimanenti dal buffer e scartarli fino a quando non legge proprio '\n'; a quel punto si prosegue. E' un modo per ripulire dai caratteri di newline il buffer dello stream di input standard.

    Originariamente inviato da gennahouse
    poi sai una guida dove spiega bene la differenza tra %c e s%?
    praticamente qualsiasi manuale di C che io sappia %c e %s (non s%) sono due codici di formato distinti e separati, quindi se stai studiando da un libro che non spiega la differenza tra le due cose ti consiglio di buttarlo senza pensarci su due volte (o di rileggerlo attentamente, perchè forse sei tu che non hai compreso la differenza).
    every day above ground is a good one

  4. #14
    grazie per le risposte, allora, ora funziona perfettamente e ho anche imparato delle cose grazie a te.

    Allora, per il discorso libro non posso comprarne un altro perche sono negli stati uniti e ne voglio uno italiano per capire tutto al 100% sono molto pignolo su queste cose hehehe.

    Se ci fosse un 1+ te lo darei volentieri!

    grazie ancora.

  5. #15
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    1,326
    Originariamente inviato da gennahouse
    Allora, per il discorso libro non posso comprarne un altro perche sono negli stati uniti e ne voglio uno italiano per capire tutto al 100% sono molto pignolo su queste cose hehehe.
    Forse sono stato troppo drastico, buttare via un libro (con quello che costano poi) non sta bene, però mi sembra strano che non spieghi bene a cosa servano i vari codici di formato, è praticamente l'abc del linguaggio. Rileggi con attenzione, e se proprio non c'è scritto allora butt... cioè diciamo... accosta al libro qualcosa di meglio

    E per curiosità, come si chiama il testo?
    every day above ground is a good one

  6. #16
    Si chiama Pocket C di Enrico Amadeo ha 220 pagine.
    Spiega che si usa %i con numeri interi, %d con i decimali, e poi accenna che %c è per i char
    ma non si capisce la differenza tra %c e %s, purtroppo su internet non sto trovando nulla che mi possa aiutare
    tu me ne puoi consigliare uno migliore?

  7. #17
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    1,326
    Si chiama Pocket C
    Ah, ecco

    Qualcosa di buono, gratuito, in italiano e liberamente scaricabile? Mah, mi viene in mente questa. Personalmente l'ho solo sfogliata perché quando l'ho scoperta conoscevo già il linguaggio, ma il tipo che l'ha scritta lo conosco virtualmente di fama ed è uno in gamba (se non altro ci sta l'elenco di tutti i codici di formato!). Volendo c'è anche questa da "appunti di informatica libera", in particolare in questa pagina spiega l'output formattato e i codici di formato. Insomma cercando si trova...
    every day above ground is a good one

  8. #18
    Grazie ancora!

    Vorrei chiederti un consiglio visto che ci sono, allora ti spiego, io vorrei creare applicazioni per iphone e ho comprato un libro di 880 pagine nel quale spiega un po tutto, il discorso è che per fare applicazioni per iphone si devono sapere i seguenti linguaggi:

    -object c
    -cocoa

    Il discorso è che da quanto ho capito l'object c è un estensione del c quindi l'unico modo per usarlo è di sapere il C, in ogni caso mi sta piacendo questo linguaggio e non mi lamento (anche se con i libri sbagliati diventa piu difficile apprendere...).

    Quindi conviene sapere il C per programmare in object c?

  9. #19
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    1,326
    Stiamo andando un po' troppo fuori argomento ora XD ti consiglio di aprire discussioni separate se hai altri dubbi

    La questione è questa: il C, come disse un mio professore una volta, è il "latino" di tutti i linguaggi di programmazione, quindi studiarlo e imparare a padroneggiarlo bene ti garantisce un'ottima base per comprenderne molti altri. Il punto è che il C (essendo vecchio di 40 anni, anche se invecchiato indubbiamente molto bene) supporta solo il paradigma procedurale, mentre altri linguaggi più moderni come il C++ o l'Objective C, sebbene derivino strettamente dal C, supportano anche la programmazione orientata agli oggetti (oltre a quella procedurale), che è una filosofia completamente diversa. Insomma per adesso studia con attenzione il C che male non fai, ma tieni presente che il passaggio ad altri linguaggi non è poi del tutto indolore. C'è gente che comincia direttamente da C++ o addirittura da Java, ma a mio avviso un approccio graduale è preferibile.

    Per altre domande, altri thread ;D
    every day above ground is a good one

  10. #20
    Ti ringrazio ancora una volta per l'aiuto.

    Sto leggendo il libro che mi hai passato anche se qui sono le 4 di mattina hahaha.

    è molto bello e ben curato.

    ciaoooo

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.