Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2013
    Messaggi
    113

    [C] Programmino saldo correntista

    Ciao ho fatto questo piccolo programmino per la gestione del saldo di un correntista.
    La cosa che non mi convince è la formattazione della data: per esempio io inserisco la data in questo modo 030303 mentre forrei che fosse così 03/03/03..come posso fare?
    codice:
    
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #define N 3
    
    struct record {
            int ncontocorrente;
            char cognome[15];
            char nome[15];
            int dataoperazione;
            int ammontare;
    }rec[N];
    
    int main()
    {
        int i, v, nconto, saldo;
        char corrent[15];
        char nom[15];
    
        for ( i = 0; i < N; i++ ) {
            printf("Inserisci i dati del correntista \n\n");
            printf("Inserisci il numero del conto corrente : \n");
            scanf("%d", &rec[i].ncontocorrente);
            printf("Inserisci cognome : \n");
            scanf("%s", &rec[i].cognome);
            printf("Inserisci nome : \n");
            scanf("%s", &rec[i].nome);
            printf("Inserisci data operazione : \n");
            scanf("%d", &rec[i].dataoperazione);
            printf("Inserisci ammontare : \n");
            scanf("%d", &rec[i].ammontare);
        }
        printf("\n\n");
        printf("Inserisci il cognome del correntista di cui si desidera il saldo : \n");
        scanf("%s", &corrent);
    
            /* Le funzioni strcmp() e strncmp() ritornano un intero minore,
            uguale o maggiore di 0 a seconda che s1 sia (o i primi n caratteri siano) rispettivamente minore, uguale o maggiore di s2. */
    
        saldo = 0;
        for ( i = 0; i < N; i++ ) {
            v = strcmp(corrent, rec[i].cognome);
    
            if ( v == 0 ) {
                saldo += rec[i].ammontare;
            } /* endif */
        } /* endfor */
    
        printf("\n\n");
        printf("*****+SALDO DEL CORRENTISTA******\n\n");
        printf("%15s%10s", "COGNOME", "SALDO");
        printf("\n");
        printf("%15s%10d", corrent, saldo);
        printf("\n\n");
    
    
    
        return 0;
    }

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2013
    Messaggi
    113
    Quote Originariamente inviata da sizeof Visualizza il messaggio
    Ciao ho fatto questo piccolo programmino per la gestione del saldo di un correntista.
    La cosa che non mi convince è la formattazione della data: per esempio io inserisco la data in questo modo 030303 mentre forrei che fosse così 03/03/03..come posso fare?
    codice:
    
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #define N 3
    
    struct record {
            int ncontocorrente;
            char cognome[15];
            char nome[15];
            int dataoperazione;
            int ammontare;
    }rec[N];
    
    int main()
    {
        int i, v, nconto, saldo;
        char corrent[15];
        char nom[15];
    
        for ( i = 0; i < N; i++ ) {
            printf("Inserisci i dati del correntista \n\n");
            printf("Inserisci il numero del conto corrente : \n");
            scanf("%d", &rec[i].ncontocorrente);
            printf("Inserisci cognome : \n");
            scanf("%s", &rec[i].cognome);
            printf("Inserisci nome : \n");
            scanf("%s", &rec[i].nome);
            printf("Inserisci data operazione : \n");
            scanf("%d", &rec[i].dataoperazione);
            printf("Inserisci ammontare : \n");
            scanf("%d", &rec[i].ammontare);
        }
        printf("\n\n");
        printf("Inserisci il cognome del correntista di cui si desidera il saldo : \n");
        scanf("%s", &corrent);
    
            /* Le funzioni strcmp() e strncmp() ritornano un intero minore,
            uguale o maggiore di 0 a seconda che s1 sia (o i primi n caratteri siano) rispettivamente minore, uguale o maggiore di s2. */
    
        saldo = 0;
        for ( i = 0; i < N; i++ ) {
            v = strcmp(corrent, rec[i].cognome);
    
            if ( v == 0 ) {
                saldo += rec[i].ammontare;
            } /* endif */
        } /* endfor */
    
        printf("\n\n");
        printf("*****+SALDO DEL CORRENTISTA******\n\n");
        printf("%15s%10s", "COGNOME", "SALDO");
        printf("\n");
        printf("%15s%10d", corrent, saldo);
        printf("\n\n");
    
    
    
        return 0;
    }
    cioè voglio inserire la data in questo formato gg/mm/aa ma facendo ignorare le slash

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2013
    Messaggi
    113
    Ho provato a fare così
    codice:
    printf("Inserisci data operazione : \n");
            scanf("%d%*c%d%*c%d", &rec[i].dataoperazione);
            printf("%d", rec[i].dataoperazione);
    ma non va!!
    p.s. la seconda printf l'ho messa per verificare

  4. #4
    Utente di HTML.it L'avatar di Scara95
    Registrato dal
    Jul 2009
    residenza
    Zimella (VR)
    Messaggi
    2,589
    codice:
    //...
        unsigned dd, gg, aa;    scanf("%2u/%2u/%2u", &dd, &gg, &aa);
        printf("%02u/%02u/%02u", dd, gg, aa);
    //...
    "Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares

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.