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;
}