|
|
|
![]() |
|
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: 22:49.