|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Apr 2007
Messaggi: 381
|
[C]Funzione con struttura
Ho fatto questo esercizio con una funzione che restituisce una struttura per calcolare il minimo e massimo di un vettore ma come sempre succedere per i miei programmi non funzionano
Codice HTML:
#include <stdio.h> struct minmax{ int min; int max; }; struct minmax vett(int v[], int n); int main(){ int n=10; int v[10]={1,4,3,6,5,3,7,5,3,6}; int c; vett(v,n); printf("%d\n", a.min); printf("%d", a.max); } struct minmax vett(int v[], int n){ int i; int min; int max; struct minmax a; if(n==1){ a.min=v[0]; a.max=v[0]; } min=v[0]; else for(i=1;i<n;i++){ if(v[i]<min){ min=v[i];}} max=v[0]; for(i=1;i<n;i++){ if(v[i]>max){ max=v[i];}} a.min=min; a.max=max; return a;} |
|
|
|
|
|
#2 | |
|
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Quote:
In sostanza si può fare così: Codice:
#include <stdio.h>
struct minmax
{
int min;
int max;
};
struct minmax minmax_vett (int v[], int n)
{
struct minmax mm = { 0, 0 };
int i;
if (n > 0)
mm.min = mm.max = v[0];
for (i = 0; i < n; i++)
{
if (v[i] < mm.min)
mm.min = v[i];
if (v[i] > mm.max)
mm.max = v[i];
}
return mm;
}
int main (void)
{
int v[10] = {1,4,3,6,5,3,7,5,3,6};
struct minmax mm;
mm = minmax_vett (v, sizeof(v)/sizeof(v[0]));
printf ("min=%d max=%d\n", mm.min, mm.max);
return 0;
}
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
|
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Apr 2007
Messaggi: 381
|
Si vabbè, tutti i miei programmi sono molto migliorabili, ma mi interessava soprattutto sapere stampavo esattamente il risultato, cioè come si ritorna un valore di struttura e come si stampa nella printf, quando la struttura è usata nella funzione
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 06:04.




















