zztop99
08-02-2011, 17:43
Ciao,stavo cercando di risolvere questo esercizio,tuttavia dopo infiniti tentativi di farlo girare correttamente non ne sono venuto ancora a capo. Sapreste perfavore indicarmi dove sto sbagliando? Grazie 1000
L'esercizio è questo Definire un tipo di dato ST, struct con due campi di nome A di tipo int e B di tipo vettore di 100 double. Scrivere una funzione con un parametro x di tipo puntatore (riferimento) ad un elemento di tipo ST. La funzione deve inserire nel campo A dell’area di memoria puntata da x la posizione del più piccolo elemento contenuto nel campo B dell’area di memoria puntata da x.
Posto la funzione che ho scritto che è quella che mi da problemi,se riusciste a darmi una mano con questi puntatori mi sareste di grande aiuto :help:
#include<stdio.h>
#include<stdlib.h>
#define d 100
typedef struct {int A;int B[d];}ST;
void C(int *x){
int i,minimo,posizione=-1;
minimo=x->B[0];
for(i=1;i<d;i++)
if(x->B[i]<x->B[0]){
minimo=B[i];}
if(minimo){
posizione=i;
}
x->A=posizione;
}
L'esercizio è questo Definire un tipo di dato ST, struct con due campi di nome A di tipo int e B di tipo vettore di 100 double. Scrivere una funzione con un parametro x di tipo puntatore (riferimento) ad un elemento di tipo ST. La funzione deve inserire nel campo A dell’area di memoria puntata da x la posizione del più piccolo elemento contenuto nel campo B dell’area di memoria puntata da x.
Posto la funzione che ho scritto che è quella che mi da problemi,se riusciste a darmi una mano con questi puntatori mi sareste di grande aiuto :help:
#include<stdio.h>
#include<stdlib.h>
#define d 100
typedef struct {int A;int B[d];}ST;
void C(int *x){
int i,minimo,posizione=-1;
minimo=x->B[0];
for(i=1;i<d;i++)
if(x->B[i]<x->B[0]){
minimo=B[i];}
if(minimo){
posizione=i;
}
x->A=posizione;
}