Il Linguaggio C - Funzione scanf() ed Esercizi

V. Funzione scanf() ed Esercizi

« Older   Newer »
 
  Share  
.
  1.     Like  
     
    .
    Avatar

    Advanced Member

    Group
    Honorary Member
    Posts
    1,843
    Respect
    +90
    Location
    Carcere Statale del Mississippi

    Status
    Offline
    Il Linguaggio C - Funzione scanf() ed Esercizi



    Ora che siete dotati di un IDE, possiamo realizzare i nostri primi programmi in linguaggio C. Introduciamo ora la funzione scanf() (scan function).
    La scanf() è una funzione utilizzata per prendere in ingresso dei dati da tastiera. Può prendere in ingresso solo predeterminati tipi di dato, stabiliti a prescindere dal programmatore, attraverso gli stessi operatori della printf(): con %d il programma si aspetterà che da tastiera venga inserito un dato di tipo int, con %c un char, ecc. L'unico problema rimane l'assegnazione del valore immesso a una variabile, così che non venga perso nella RAM. Per fare questo utilizziamo l'operatore "&" (and), che serve ad associare il valore inserito da tastiera ad una variabile; più precisamente questo operatore serve ad associare la cella della RAM dove risiede il valore della variabile.
    La sintassi della scanf() è simile a quella della printf(): scanf("operatore_di_tipo",&nome_variabile);
    Esempio:

    #include <stdio.h>


    int main (void){
    int x;
    printf("Quanti anni hai?\n");
    scanf("%d", &x);
    printf("\n Non pensavo avessi %d anni", x);
    getchar();
    return 0;
    }


    Osservazione: nell'utilizzo della scanf(), è possibile prendere in ingresso anche due, tre,..., n dati: l'importante è che vangano scritti come nella funzione. Es: se scanf("%d,%d,%d",&a,&b,&c) segue che da tastera i dati dovranno essere immessi così: 12,33,41 .

    Esercizi



    L'esercizio costante porta al successo. Soluzioni sotto spoiler.

    Esercizio 1: Si scriva un programma in C che calcoli la somma di due numeri dati da tastiera.
    Soluzione:

    #include <stdio.h>

    int main(void) {int addendo1, addendo2, add;
    printf("Benvenuto su Add Maker!\n");
    printf("Inserite ora le cifre da sommare algebricamente fra loro\n >");
    scanf("%d", &addendo1);
    printf("+");
    printf("\n >");
    scanf("%d", &addendo2);
    add = addendo1 + addendo2;
    printf("Grazie! Risulta: %d", add);
    getchar();
    return(0);
    }



    Esercizio 2: Si scriva un programma in C in grado di risolvere le equazioni lineari (ax+b=c) prendendo in ingresso i coefficienti delle eqazioni.
    Soluzione:

    #include <stdio.h>

    int main (void) { int a, b, x;
    printf("Welcome to E.S. (I Grade)!\n");
    printf("Inserite ora i termini richiesti (equazione in forma normale)\n");
    printf("Coefficente incognita_>");
    scanf("%d",&a);
    printf("\nTermine noto_>");
    scanf("%d", &b);
    x=-(b/a);
    printf("\nL'equazione ha come soluzione %d", x);


    getchar();
    return(0);
    }



    Esercizio 3: Si scriva un programma in C in grado di calcolare le percentuali di una votazione: vi sono favorevoli, contrari e astenuti. Ciascuna percentuale dovrà essere stampata a video.
    Soluzione:

    #include <stdio.h>


    int main(void) { int yes,no,boh,prcty,prctn,prctb,tot;
    printf("Benvenuto al software di calcolo delle percentuali in una votazione a 3 scelte\n");
    printf("Dovrai dichiarare ora quante persone alla votazione hanno scelto rispettivamente favorevoli, contrari e astenuti\n");
    printf("Inserisci ora il numero dei favorevoli\n >");
    scanf("%d", &yes);
    printf("Inserisci ora il numero dei contrari\n >");
    scanf("%d", &no);
    printf("Inserici ora il numero degli astenuti\n >");
    scanf("%d", &boh);

    tot=yes+no+boh;
    prcty=(yes*100)/tot;
    prctn=(no*100)/tot;
    prctb=(boh*100)/tot;

    printf("\n I favorevoli costituiscono il %d percento dei votanti", prcty);
    printf("\n I contrari costituiscono il %d percento dei votanti", prctn);
    printf("\n Gli astenuti costituiscono il %d percento dei votanti", prctb);

    getchar();
    return(0);
    }



    RIPRODUZIONE RISERVATA | COPYRIGHT ©Blues_Man, 2016
    @Legion Errant



    Edited by $imø - 5/5/2017, 19:06
     
    .
0 replies since 30/8/2016, 01:01   40 views
  Share  
.