Ciao ragazzi del forum html.it mandando in esecuzione il programma qui sotto riesco a visualizzare solo il campo B della struct.
L'esercizio chiede di creare la funzione ma per capire se è corretto ho voluto creare un main per richiamarla.
Purtroppo sono alle prime armi nella programmazione e sopratutto con le struct faccio confusione,
volevo sapere se commetto errori di sintassi ad esempio nello scrivere Q[0].A[0]=1 o nell' inserire i dati nella struttura.
Infine in un eventuale scanf come li inserirei? dovrei scrivere &Q[0].A[0] ?.
Ringrazio anticipatamente chiunque risponderà.
codice:#include <stdio.h> #include <stdlib.h> /* run this program using the console pauser or add your own getch, system("pause") or input loop */ /*es11struct260606valmaxcampoB DEFINIRE UN TIPO DI DATO STRUCT DI NOME SX COMPOSTO DA UN CAMPO A DI TIPO VETTORE DI 3 INTERI ED UN CAMPO B DI TIPO DOUBLE. DEFINIRE QUINDI UN TIPO DI DATO VETTORE VTX COMPOSTO DA 10 ELEMENTI DI TIPO XS. SCRIVERE UNA FUNZIONE CHE HA COME PARAMETRO UN ELEMENTO DI TIPOTTX E RESTITUISCE IN UN OPP PARAMETRO L' LEMENTO DI VTX CHE HA IL VALORE MASSIMO NEL CAMPO B*/ typedef struct{int A[3]; double B ;}XS; typedef XS VETTORE[4]; XS funz(VETTORE k) { XS ele=k[0]; double max=k[0].B; int i; for(i=0;i<4;i++) { if (k[i].B>max) {max=k[i].B; ele=k[i]; } } return ele; } int main() { VETTORE Q; XS t; int i; Q[0].A[0]=1; Q[1].A[0]=2; Q[2].A[0]=3; Q[3].A[0]=3; Q[0].A[1]=4; Q[1].A[1]=5; Q[2].A[1]=6; Q[3].A[1]=3; Q[0].A[2]=7; Q[1].A[2]=8; Q[2].A[2]=9; Q[3].A[2]=3; Q[0].B=1; Q[1].B=2; Q[2].B=111; Q[3].B=3; t=funz(Q); for(i=0;i<=4;i++) { printf("%d %f",t.A,t.B ); } system("PAUSE"); return 0; }