|
|
|
![]() |
|
Strumenti |
![]() |
#41 |
Senior Member
Iscritto dal: Nov 2005
Messaggi: 2775
|
Ok, a logica ci stai, forse qualche indice di fine e di inizializzazione va corretto ma inizia a scrivere il codice completo e a testarlo, poi se ci sono problemi che non riesci a risolvere posta ancora.
|
![]() |
![]() |
![]() |
#42 |
Senior Member
Iscritto dal: Jul 2003
Città: Alessandria
Messaggi: 10167
|
Bene, ti ringrazio dell'aiuto, sono riuscito a far funzionare l'ordinamento, questo è il codice completo del programma:
Codice:
#include <stdio.h> #define N 10 main() { int marks[N]; int mark = 0, i = 0, mean = 0, sum = 0, max = 0, min, tmp = 0, end = N; /* Insert marks*/ printf("Insert 10 marks\n"); for ( i=0; i < N; i++) { scanf("%d", &mark); marks[i] = mark; } /* Order marks section */ while ( end > 1) { for ( i=0; i < N; i++) { if ( marks[i] > marks[i+1] ) { tmp = marks[i]; marks[i] = marks[i+1]; marks[i+1] = tmp; } } end--; } /* Compute sum and mean then print them */ for ( i=0; i < N; i++) { sum = sum + marks[i]; } mean = sum / N; /* Compute maximum and minimum */ for ( i = 0; i < N; i++) { if ( marks[i] > max ) { max = marks[i]; } if ( marks[i] < min ) { min = marks[i]; } } printf("Sum: %d\n", sum); printf("Mean: %d\n", mean); printf("Max: %d\n", max); printf("Min: %d\n", min); printf("Order: "); for ( i = 0; i < N; i++) { printf("%d ", marks[i]); } } ![]()
__________________
Dell XPS 13 (9350) :: i5-2500K - HD6870 - AsRock Z68 Pro3 - Corsair Vengeance 8GB (4x2) DDR3 :: Samsung Galaxy S4 GT-i9505
|
![]() |
![]() |
![]() |
#43 |
Senior Member
Iscritto dal: Nov 2005
Messaggi: 2775
|
Puoi ottimizzarlo così:
Codice:
#include <stdio.h> #define N 10 int main() { int marks[N]; int mark = 0, i = 0, mean = 0, sum = 0, max = 0, min, tmp = 0, end = N-1; /* Insert marks*/ printf("Insert 10 marks\n"); for ( i=0; i < N; i++) { scanf("%d", &mark); marks[i] = mark; } /* Order marks section */ while ( end > 0) { for ( i=0; i < end; i++) { if ( marks[i] > marks[i+1] ) { tmp = marks[i]; marks[i] = marks[i+1]; marks[i+1] = tmp; } } end--; } /* Compute sum and mean then print them */ for ( i=0; i < N; i++) { sum = sum + marks[i]; } mean = sum / N; /* Compute maximum and minimum */ for ( i = 0; i < N; i++) { if ( marks[i] > max ) { max = marks[i]; } if ( marks[i] < min ) { min = marks[i]; } } printf("Sum: %d\n", sum); printf("Mean: %d\n", mean); printf("Max: %d\n", max); printf("Min: %d\n", min); printf("Order: "); for ( i = 0; i < N; i++) { printf("%d ", marks[i]); } } |
![]() |
![]() |
![]() |
#44 | |
Senior Member
Iscritto dal: Jul 2003
Città: Alessandria
Messaggi: 10167
|
Quote:
__________________
Dell XPS 13 (9350) :: i5-2500K - HD6870 - AsRock Z68 Pro3 - Corsair Vengeance 8GB (4x2) DDR3 :: Samsung Galaxy S4 GT-i9505
|
|
![]() |
![]() |
![]() |
#45 |
Senior Member
Iscritto dal: Nov 2005
Messaggi: 2775
|
|
![]() |
![]() |
![]() |
#46 |
Senior Member
Iscritto dal: Jul 2003
Città: Alessandria
Messaggi: 10167
|
Penso di essere incappato in un problema che va oltre le mie conoscenze: le sequenze di fibonacci coi vettori.
Ho pensato che sarebbe stato bello poter fare in modo che il programma chiedesse in input la dimensione del vettore, ovviamente so che coi normali vettori ( o con le normali tecniche che a me sono state spiegate ) non è possibile assegnare una dimensione 'x' ad un vettore una volta che il programma è in esecuzione. Mi sono allora imbattuto in pointer, array definiti in modo strano ( con un * ) e robe simili. La cosa credo sia abbastanza complicata viste le mie conoscenze, meglio lasciar stare?
__________________
Dell XPS 13 (9350) :: i5-2500K - HD6870 - AsRock Z68 Pro3 - Corsair Vengeance 8GB (4x2) DDR3 :: Samsung Galaxy S4 GT-i9505
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 15:58.