PDA

Visualizza la versione completa : [C] Programma per la scrittura della data


L.Hamilton
22-10-2009, 23:03
ciao a tutti, ho grandissimi problemi con questo programma

Scrivere un programma che legge una data nel formato gg/mm/aa e la stampa nel formato gg nome_mese aa. Ad esempio, se l'input Ŕ 12/5/2009 allora l'ouput Ŕ 12 maggio 2009.

Ho provato ad abbozzare qualcosa ma naturalmente fioccano gli errori.
Vi faccio vedere cosa ho fatto(scusate per le enormi idiozie che ho scritto ma ho cominciato a programmare da una settimana e mi sono arrangiato come posso)



#include <stdio.h>
int main()
{
int gg, mm, aa;
printf("Inserire data:");
scanf("%d%d%d", &gg, &mm, &&aa);

for(gg=1;gg<=31;gg++){
printf("%d", gg);
for(mm=1;gg<=12;gg++)
printf("%d, mm);
switch(mm):
case 1:
printf("gennaio");
break;
case 2:
printf("febbraio");
break;
case 3:
printf("marzo");
break;
case 4:
printf("aprile");
break;
case 5:
printf("maggio");
break;
case 6:
printf("giugno");
break;
case 7:
printf("luglio");
break;
case 8:
printf("agosto");
break;
case 9:
printf("settembre");
break;
case 10:
printf("ottobre");
break;
case 11:
printf("novembre");
break;
case 12:
printf("dicembre");
break;
}
for(aa=1;aa>=1;aa++){
printf(" /%d", aa);

}
}
}
return 0;
}


Per favora aiutate datemi qualche dritta perchŔ quello che ho scritto Ŕ veramente catastrofico.
ciao

oregon
22-10-2009, 23:13
Tutte le for non servono ...

L.Hamilton
22-10-2009, 23:31
e quindi?

oregon
23-10-2009, 08:30
Originariamente inviato da L.Hamilton
e quindi?

E quindi toglile ... esegui nuovamente il programma e guarda cosa non va ...

Un po' di impegno ...

L.Hamilton
23-10-2009, 09:02
se tolgo le for ed inserisco una data mi dice soo il corrispettivo mese e per il resto nulla

ho provato a modificarlo cosi



#include <stdio.h>
int main()
{
int gg, mm, aa;
printf("Inserire data:");
scanf("%d%d%d", &gg, &mm, &aa);

if(gg<=31)
printf("%d/", gg);

switch(mm){
case 1:
printf("gennaio");
break;
case 2:
printf("febbraio");
break;
case 3:
printf("marzo");
break;
case 4:
printf("aprile");
break;
case 5:
printf("maggio");
break;
case 6:
printf("giugno");
break;
case 7:
printf("luglio");
break;
case 8:
printf("agosto");
break;
case 9:
printf("settembre");
break;
case 10:
printf("ottobre");
break;
case 11:
printf("novembre");
break;
case 12:
printf("dicembre");
break;
}

printf(" /%d", aa);

return 0;
}


devo dire che funziona anche se Ŕ un po grezzo e non mi sembra un granche come programma

LeleFT
23-10-2009, 09:08
Aggiungo il suggerimento di prendere visione del Regolamento interno (http://forum.html.it/forum/showthread.php?s=&threadid=973887), soprattutto il punto 6 riguardante la formattazione del codice sorgente.


Correggo la discussione.


Ciao. :ciauz:

oregon
23-10-2009, 09:57
Originariamente inviato da L.Hamilton
se tolgo le for ed inserisco una data mi dice soo il corrispettivo mese e per il resto nulla


Ok che stai cominciando a programmare, ma mi sembra che tu non ti sforzi di fare nessun tipo di analisi dei problemi ...

Se il programma fa qualcosa (o non la fa) e' solo perche' tu dici di farla (o non farla) ...
Analizza tutte le istruzioni e cerca di comprendere quali sono quelle che non devono essere inserite (o devono essere modificate).

Ti chiedo ... a cosa serve questa istruzione

if(gg<=31)

???

Perche' l'hai inserita? Secondo quale logica ?

E poi ... sai cosa sono i vettori ? Li puoi usare nel tuo programma ?

P.S. Usa i tag CODE per mostrare il codice perche' cosi' non si puo' leggere ...

feys88
23-10-2009, 19:57
Hamilton chiedilo a Silvestri e vedrai che ti risponderÓ. :ciauz: :ciauz: :ciauz:

L.Hamilton
24-10-2009, 11:02
Ho provato a pensare una cosa del genere ma manca sicuramente qualcosa, e inoltre c'Ŕ il problema dei giorni per i mesi e l'anno bisestile



#include <stdio.h>
int main()
{
char *nm[]= {"gen","feb","mar","apr","mag","giu","lug"ago","set","ott","nov","dic","\0};
int gg, mm, aa;
printf("Inserire data:");
scanf("%d%d%d", &gg, &mm, &aa);
printf("%d/%d/%d\n", gg,mm,aa);
printf("%d/%s/%d\n", gg,nm[mm-1],aa);
return 0;

oregon
24-10-2009, 11:17
Originariamente inviato da L.Hamilton
Ho provato a pensare una cosa del genere

Tu non hai pensato nulla ... vedi

http://it.answers.yahoo.com/question/index;_ylt=Apad9SoufFBIWTiY4FnVffjwDQx.;_ylv=3?qid =20091023003511AAmwZKF

Cerca di impegnarti personalmente, senza prendere in giro il prossimo ...

Loading