Date...

di il
37 risposte

Date...

Buonasera a tutti!
Devo realizzare in C il seguente programma:
"Date tre date in input in formato gg/mm/aaaa, ordinarle in modo crescente, facendo uso di funzioni"
Come posso fare? Sono giorni che cerco di realizzarlo...
Ho iniziato con questo codice:

#include <stdio.h>
#include >stdlib.h>

int ordinamento_crescente()

int mai()
{
     int g1, g2, g3;
     int m1, m2, m3;
     int a1, a2, a3;

     printf("Inserisci la prima data in formato gg/mm/aaaa:\n");
     scanf("%2d/%2d/%4d", &g1, &m1, &a1);

     printf("Inserisci la seconda data in formato gg/mm/aaaa:\n");
     scanf"(%2d/%2d/%4d", &g2, &m2, &a2);

     printf("Inserisci la terza data in formato gg/mm/aaaa:\n");
     scanf("%2d/%2d/%4d", &g3, &m3, &a3)
     printf("\n");
     printf("Le date inserite sono:\n");
     printf("%2d/%2d/%4d\n", g1, m1, a1);
     printf("%2d/%2d/%4d\n", g2, m2, a2);
     printf("%2d/%2d/%4d\n", g3, m3, a3);
     printf("\n");

     ordinamento_crescente()
     }
Non ho idea di come continuare...

37 Risposte

  • Re: Date...

    Puoi usare un vettore? Una struttura? Una stringa?
  • Re: Date...

    Posso usare gli array... ma non ho idea di come impostarli...
  • Re: Date...

    Usa gli array allora.

    Se ti è più chiaro, utilizza tre vettori, per giorno, mese e anno.

    int g[3],m[3],a[3];

    Esegui l'input negli elementi dei vettori e passa i vettori alla funzione per l'ordinamento.
  • Re: Date...

    Come posso passare i vettori alla funzione?
    So che devo fare uso dei puntatori, ma come posso scrivere effettivamente?
  • Re: Date...

    Non ci provi neanche?
  • Re: Date...

    Lo sto provando ora con Dev-C++
  • Re: Date...

    Intendevo l'inizio della funzione a cui passi i tre vettori ... in qualche modo hai dovuto studiarlo, altrimenti devi rivedere il libro.
  • Re: Date...

    Questo il codice per inserire giorni mesi e anni in array
    
    #include <stdio.h>
    #include <stdlib.h>
    
    int ordinamento ();
    
    int main() {
    	int a[3];
    	int m[3];
    	int g[3];
    	int i;
    	
    	for(i=0; i<3; i++)
    	{
    		printf("Inserisci l'anno %d: ", i);
    		scanf("%d", &a[i]);
    	}
    	
    	for(i=0; i<3; i++)
    	{
    		printf("Inserisci il mese %d: ", i);
    		scanf("%d", &m[i]);
    	}
    	
        for(i=0; i<3; i++)
    	{
    		printf("Inserisci il giorno %d: ", i);
    		scanf("%d", &g[i]);
    	}
    	
  • Re: Date...

    Così inserisci i 3 giorni, poi i 3 mesi e poi i 3 anni e non mi pare corretto, no?

    La for deve essere una sola e la scanf va fatta per il giorno mese anno come prima ma utilizzando i vettori.

    Dopo scrivi la testata della funzione con il nome e i parametri
  • Re: Date...

    Sì! Me ne sono accorto ora... La sto modificando...
  • Re: Date...

    Non ci riesco... mi sto perdendo in un bicchier d'acqua...
    #include <stdio.h>
    #include <stdlib.h>
    
    /* run this program using the console pauser or add your own getch, system("pause") or input loop */
    
    int main() {
    	int g0, g1, g2;
    	int m0, m1, m2;
    	int a0, a1, a3;
    	int i;
    	
    	int g[] = {g0, g1, g2};
    	int m[] = {m0, m1, m2};
    	int a[] = {a0, a1, a3};
    	
    	for (i=0; i<3; i++)
    	{
    	printf ("Inserisci la data %d in formato gg/dd/aaaa\n", i);
    	scanf("%2d/%2d/%4d", &g_i, &d_i, &a_i);
        }
    	
    	system("pause");
    	return 0;
    }
    Come faccio con la scanf?
  • Re: Date...

    Dovevi solo cambiare la scanf per inserire g me a ... non tutto il resto
  • Re: Date...

    Così
    Perdonami... sto studiando tanto questa materia, ma non riesco...
    #include <stdio.h>
    #include <stdlib.h>
    
    /* run this program using the console pauser or add your own getch, system("pause") or input loop */
    
    int main() {
    	int g[3];
    	int m[3];
    	int a[3];
    	int i;
    
    	for (i=0; i<3; i++)
    	{
    	printf ("Inserisci la data %d in formato gg/dd/aaaa\n", i);
    	scanf("%2d/%2d/%4d", &g[i], &m[i], &a[i]);
        }
    	
    	system("pause");
    	return 0;
    }
  • Re: Date...

    Ti ripeto ... parti dal primo codice che avevi proposto ...

    Tutto questo

    int g0, g1, g2;
    int m0, m1, m2;
    int a0, a1, a3;

    non c'entra nulla ... riparti da

    int a[3];
    int m[3];
    int g[3];

    e usa una sola for
Devi accedere o registrarti per scrivere nel forum
37 risposte