|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Junior Member
Iscritto dal: Dec 2008
Città: Napoli
Messaggi: 21
|
[C] io, gli array, e le funzioni...
Sono di nuovo io, qui ad elemosinare aiutooo!! XD
Stavolta mi viene chiesto di trovare il massimo in un array... "questo lo so fare", penso io.. e infatti: Codice:
#include <stdio.h> #include <stdlib.h> main () { int i, n, *a, massimo; printf ("Quante locazioni deve contenere il tuo array?\n"); scanf ("%d", &n); a= (int*) malloc (n*sizeof(int)); for (i=0; i<=n; i++) { printf ("Inserisci il valore n.%d\n", i); scanf ("%d", &a[i]); } massimo=0; for (i=0; i<=n; i++) { if (a[i]>massimo) { massimo=a[i]; } else { massimo=massimo; } } printf ("Il valore massimo contenuto nell'array e' pari a %d\n", massimo); system ("pause"); } ![]() dunque scrivo Codice:
#include <stdio.h> #include <stdlib.h> int maxn (int max); main () { int i, n, *a, massimo, max; printf ("Quante locazioni deve contenere il tuo array?\n"); scanf ("%d", &n); a= (int*) malloc (n*sizeof(int)); for (i=0; i<=n; i++) { printf ("Inserisci il valore n.%d\n", i); scanf ("%d", &a[i]); } massimo= maxn (max); printf ("Il valore massimo contenuto nell'array è pari a %d\n", massimo); system ("pause"); } int maxn (int max) { int i, a[i], n; max=0; for (i=0; i<=n; i++) { if (a[i]>max) { max=a[i]; } else { max=max; } } return max; } ![]() Vi ringrazio tanto ![]() |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
A maxn devi passare i parametri che ti servono nella funzione, il cui valore viene definito in main, in questo caso *a e n, all'interno della funzione devi ricavarti il massimo e ritornarlo al main con return.
Supponi di avere una funzione che fa la somma fra A e B, cosa gli dovrai passare alla funzione somma ? Ovviamente A e B e dovrai ritornare A + B. Stesso discorso in questo caso: devi trovare il massimo, allora gli dovrai passare il vettore e il numero di elementi. Il valore di ritorno dovrà essere il massimo. |
![]() |
![]() |
![]() |
#3 |
Junior Member
Iscritto dal: Dec 2008
Città: Napoli
Messaggi: 21
|
sììììì hai ragioneeee!! ti farei una statua d'oro
![]() Codice:
#include <stdio.h> #include <stdlib.h> int maxn (int n, int *a); main () { int i, n, *a, massimo, max; printf ("Quante locazioni deve contenere il tuo array?\n"); scanf ("%d", &n); a= (int*) malloc (n*sizeof(int)); for (i=0; i<=n; i++) { printf ("Inserisci il valore n.%d\n", i); scanf ("%d", &a[i]); } massimo= maxn (n, a); printf ("Il valore massimo contenuto nell'array è pari a %d\n", massimo); system ("pause"); } int maxn (int n, int *a) { int i; int max=0; for (i=0; i<=n; i++) { if (a[i]>max) { max=a[i]; } else { max=max; } } return max; } ![]() |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Feb 2007
Città: Verona
Messaggi: 1060
|
Consiglio la lettura di una dispensina teorica sulle funzioni (matematica/informatica)..
![]() ![]() ![]()
__________________
|
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
malocchio: hai la firma irregolare, max 3 righe di testo alla risoluzione di 1024.
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 16:34.