Problema Array (Vettori) Terza superiore

di il
8 risposte

Problema Array (Vettori) Terza superiore

Ragazzi ho questo problema in C da risolvere:
Nell'array Ore_Studio sono memorizzate le ore passate a studiare da uno studente per ogni giorno del mese(generate casualmente con valori 0-4). Calcola e visualizza il numero totale di ore passate a studiare nel corso del mese, il giorno (o i giorni) in cui lo studente ha studiato per un numero maggiore di ore e il numero di giorni in cui non ha aperto libro.
Le mie perplessità sorgono sul trovare i giorni in cui ha studiato per un numero maggiore poichè dovrei controllare il massimo delle ore e confrontarlo ogni volta con tutto il vettore ma non so veramente come fare...
Potreste darmi una mano ?

8 Risposte

  • Re: Problema Array (Vettori) Terza superiore

    Ciao inizia a postare quello che hai fatto, qui non si svolgono esercizi di sana pianta.
  • Re: Problema Array (Vettori) Terza superiore

    Kiyo.PTN ha scritto:


    Potreste darmi una mano ?
    Potresti scorrere l'array per trovare il valore massimo (è abbastanza semplice) in una variabile max.
    Poi lo scorri nuovamente e stampi i giorni in cui hai il numero di ore massimo memorizzato nella variabile max.
  • Re: Problema Array (Vettori) Terza superiore

    #include <stdio.h>
    #include <stdlib.h>
    main()
    {
    	int Ore_Studio[30], I, TOT, MAX, GN;
    	srand(time(0));
    	printf("Gli elementi del vettore sono:\n");
    	for(I=0;I<30;I++)
    	{
    		Ore_Studio[I]=0+rand()%5;
    		printf("%d ", Ore_Studio[I]); 																				//Operazione non necessaria ma utilizzata per verificare il problema.
    	}
    	TOT=0;
    	for(I=0;I<30;I++)
    	TOT=TOT+Ore_Studio[I];
    	printf("\nLe ore totali passate a studiare sono %d.\n", TOT);
    	MAX=0;
    	for(I=0;I<30;I++)
    	{
    		if(Ore_Studio[I]>MAX)
    		MAX=Ore_Studio[I];
    	}
    	for(I=0;I<30;I++)
    	{
    		if(Ore_Studio[I]==MAX)
    		printf("Il giorno in cui ha studiato di piu\' e\' il %d del mese. \n", I+1);
    	}
    	GN=0;
    	for(I=0;I<30;I++)
    	{
    		if(Ore_Studio[I]==0)
    		GN++;
    	}
    	printf("Lo studente non ha aperto libro per %d giorni.", GN);
    }
    Il problema l'ho risolto così alla fine... Va bene giusto? (scusate sono un ragazzo di terza superiore ma la prof non ha molto approfondito certe cose e quindi ho problemi). Grazie a tutti per l'aiuto comunque!
  • Re: Problema Array (Vettori) Terza superiore

    Corretto ... solo qualche indicazione

    1) manca

    #include <time.h>

    2) qui

    Ore_Studio[ I ] = 0 + rand() % 5;

    lo 0 non serve. Scrivi

    Ore_Studio[ I ] = rand() % 5;

    3) le variabili I, TOT, MAX, GN;

    è meglio (anche se non obbligatorio) che siano in minuscolo

    i, tot, max, gn;

    4) la funzione main deve essere

    int main()

    e deve terminare con

    return 0;
  • Re: Problema Array (Vettori) Terza superiore

    oregon ha scritto:


    Corretto ... solo qualche indicazione

    1) manca

    #include <time.h>

    2) qui

    Ore_Studio[I] = 0 + rand() % 5;

    lo 0 non serve. Scrivi

    Ore_Studio[I] = rand() % 5;

    3) le variabili I, TOT, MAX, GN;

    è meglio (anche se non obbligatorio) che siano in minuscolo

    i, tot, max, gn;

    4) la funzione main deve essere

    int main()

    e deve terminare con

    return 0;


    Scusami ma non capisco perchè int main e return(?) la mia professoressa non ha mai accennato a ste cose e non l'ha mai nemmeno assegnato dal libro; a cosa serve?
  • Re: Problema Array (Vettori) Terza superiore

    oregon ha scritto:


    Corretto ... solo qualche indicazione

    1) manca

    #include <time.h>

    2) qui

    Ore_Studio[I] = 0 + rand() % 5;

    lo 0 non serve. Scrivi

    Ore_Studio[I] = rand() % 5;

    3) le variabili I, TOT, MAX, GN;

    è meglio (anche se non obbligatorio) che siano in minuscolo

    i, tot, max, gn;

    4) la funzione main deve essere

    int main()

    e deve terminare con

    return 0;


    Grazie comunque per l'aiuto
  • Re: Problema Array (Vettori) Terza superiore

    Kiyo.PTN ha scritto:


    Scusami ma non capisco perchè int main e return(?) la mia professoressa non ha mai accennato a ste cose e non l'ha mai nemmeno assegnato dal libro; a cosa serve?
    Perché è una regola del linguaggio C, oltre al fatto che il tuo compilatore dovrebbe lamentarsi e avvertirti la mancanza dello int (che è implicito, ma va esplicitato!).

    Le variabili si dichiarano in minuscolo, in maiuscolo vanno solo le costanti (definite con #define o const) e si dichiarano quando servono, possibilmente non tutte in linea. Se hai due parole come nome della variabile le scrivi come parolaParola o parola_parola.
    Non vado a scrivere questo codice: [CODE] int PREZZO, I, TOTALE, SCONTO, ARRAYACASO[10]; ma [CODE] int prezzo = 0, sconto = 5; for (int i = 0; i < 5; i++) prezzo += i; int totale = prezzo - sconto; ad esempio. Rispettando sempre l’indentazione, perciò non allinei le istruzioni agli clausole if.
  • Re: Problema Array (Vettori) Terza superiore

    Leggi

    https://www.iprogrammatori.it/forum-programmazione/cplusplus/return-t26580.html
Devi accedere o registrarti per scrivere nel forum
8 risposte