Visualizzazione dei risultati da 1 a 2 su 2

Visualizzazione discussione

  1. #1

    [C]Programma C vettore di struct e funzione

    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;
    }
    Ultima modifica di newuser88; 28-05-2014 a 19:13

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.