PDA

Visualizza la versione completa : [C] Programmino saldo correntista


sizeof
30-09-2013, 17:55
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?




#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;
}

sizeof
30-09-2013, 18:10
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?




#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

sizeof
30-09-2013, 18:28
Ho provato a fare così


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

Scara95
30-09-2013, 19:08
//...
unsigned dd, gg, aa; scanf("%2u/%2u/%2u", &dd, &gg, &aa);
printf("%02u/%02u/%02u", dd, gg, aa);
//...

Loading