Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2008
    Messaggi
    13

    problema con funzione in c

    ciao..ho un problemino con questo programma:


    Scrivere un programma che acquisendo i dati da tastiera costruisca una matrice A che contiene il numero degli interventi che un tecnico esegue verso un suo cliente e un codice che identifica ogni cliente.
    costruire una lista L in cui ogni elemento contiene il numero identificativo di ciascun cliente che ha richiesto piu' di 5 interventi a un tecnico.


    Inserire nel programma una funzione che utilizzando la matrice acquisisce da tastiera il codice di un tecnico e rende un vettore V di strutture in cui in ogni elemento ce il codice del cliente e il numero di interventi del tecnico Visualizzare V e successivamente ordinarlo in senso crescente rispetto al numero degli interventi.
    Visualizzare V ordinato.


    ORA, per chi non ha voglia di leggere , il mio problema riguarda solo l'ultima parte ovvero inserire una funzione che acquisendo da tastiera un certo valore,inserisca questo valore in un vettore di strutture.
    Il codice che posto ora è giusto ed esegue solo la prima parte del programma..però manca la funzione sopracitata


    grazie mile in anticipooooooooooo


    #include<stdio.h>
    #include <stdlib.h>


    typedef struct elem{
    int info;
    struct elem *next;
    }Ele;


    typedef struct st{
    int codicecliente;
    int numerointerventitecnico;
    }St;

    Ele *crealista(Ele *,int);
    void stampa(Ele *);


    main()
    {


    int i;
    int j;
    int c;
    int d;
    int a;
    int matrice[5][2];
    Ele *inizio=NULL;

    printf("num ordini");
    printf("id cliente\n");
    for(i=0;i<5;i++){
    for(j=0;j<2;j++){
    scanf("%d",&matrice[i][j]);
    if(matrice[i][0]>5)
    inizio=crealista(inizio,matrice[i][j]);

    }
    }

    // scanf("%d",&a);
    // for(c=0;c<5;c++){
    // for(d=0;d<2;d++){
    // if(a==c)
    // riporta(matrice[c][d],v[c],c,d);
    //printf("%d",v[c]);
    //}
    //}

    stampa(inizio);
    fflush(stdin);
    getchar();
    }





    Ele *crealista(Ele *inizio,int dato)
    {
    struct elem *p;
    p=(Ele*)malloc(sizeof(Ele));


    p->info=dato;
    p->next=inizio;

    return(p);

    }


    void stampa(Ele *inizio)
    {
    while(inizio){
    printf("\n%d",inizio->info);
    inizio=inizio->next;}
    }

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    Quindi, se ho capito, vorresti che scrivessimo tutta la funzione?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2008
    Messaggi
    13
    no...vorrei solo capire come posso passare una matrice e un vettore di tipo struttura a una funzione.

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    Originariamente inviato da IO23
    vorrei solo capire come posso passare una matrice e un vettore di tipo struttura a una funzione.
    Ha ... Non s'era capito ne' dal titolo ne' dal primo post ... potresti scrivere

    void funzione(int m[][2], Ele *v)

    doto che la tua matrice e'

    int matrice[5][2];
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2008
    Messaggi
    13
    Originariamente inviato da oregon
    Ha ... Non s'era capito ne' dal titolo ne' dal primo post ... potresti scrivere

    void funzione(int m[][2], Ele *v)

    doto che la tua matrice e'

    int matrice[5][2];
    ok però non riesco a capire come posso assegnare al vettore gli interi contenuti nella matrice..
    ho scritto una funzione del genere:

    void funzione(int m[][2], Ele *v,int c,int d)
    {
    v.codicecliente=m[c][d];
    v.numerointerventitecnico=m[c][0]
    }


    e nel main acquisco un valore e guardo fin quando non è uguale a c..e poi richiamo la funzione che mi dovrebbe mettere i valori della matrice nel vettore..ma non avviene niente di tutto ciò
    // scanf("%d",&a);
    // for(c=0;c<5;c++){
    // for(d=0;d<2;d++){
    // if(a==c)
    // riporta(matrice[c][d],v[c],c,d);
    //printf("%d",v[c]);
    //}
    //}


    mi scuso per essere poco capibile

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    Probabilmente sei poco "capibile" perche' non hai capito molto neanche tu ...

    Perche' parli di vettore ? Stai usando (o dovresti usare) una "lista", dato che

    Ele *

    e' il puntatore ad una lista (che dovresti creare con la crealista ...).

    Chiarisci un po' ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  7. #7
    Utente di HTML.it
    Registrato dal
    Oct 2008
    Messaggi
    13
    Ovviamente se avessi capito tutto ora non starei qua a chiederlo..
    ho solo messo in pratica quello che mi è stato suggerito...
    se noti infatti ho dichiarato la funzione identica a come mi è stata suggerita proprio perchè non so risolvere il problema da solo,altrimenti ripeto,non l'avrei chiesto..

    comunque,ho parlato di vettore perchè il mio problema è quello di inserire in un vettore di tipo struttura dei valori di una matrice.cmq si, hai ragione Ele *v è un puntatore ad una lista...

  8. #8
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    Originariamente inviato da IO23
    Ovviamente se avessi capito tutto ora non starei qua a chiederlo..
    ho solo messo in pratica quello che mi è stato suggerito...
    se noti infatti ho dichiarato la funzione identica a come mi è stata suggerita proprio perchè non so risolvere il problema da solo,altrimenti ripeto,non l'avrei chiesto..
    Non prendertela ... la mia voleva essere una critica "costruttiva" ...

    comunque,ho parlato di vettore perchè il mio problema è quello di inserire in un vettore di tipo struttura dei valori di una matrice.cmq si, hai ragione Ele *v è un puntatore ad una lista...
    Quindi ... decidi se vuoi usare un vettore o una lista ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  9. #9
    Utente di HTML.it
    Registrato dal
    Oct 2008
    Messaggi
    13
    no tranquillo non me la sono presa
    comunque si la lista effettivamente non centra niente..quel che mi interessa è passare ad un vettore di strutture ,i valori che sono contenuti in una matrice,attraverso una funzione.
    quindi più o meno dovrei fare una funzione del genere?
    void funzione(int m[][2],St v[],int c,int d)
    {
    v.codicecliente=m[c][d];
    v.numerointerventitecnico=m[c][0]
    }


  10. #10
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    Originariamente inviato da IO23
    void funzione(int m[][2],St v[],int c,int d)
    {
    v[indice].codicecliente=m[c][d];
    v[indice].numerointerventitecnico=m[c][0];[/color]
    }
    Manca l'indice del vettore di strutture ... l'ho indicato in rosso ... devi utilizzare una apposita variabile ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

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 © 2024 vBulletin Solutions, Inc. All rights reserved.