Torna indietro   Hardware Upgrade Forum > Software > Programmazione

La Formula E può correre su un tracciato vero? Reportage da Misano con Jaguar TCS Racing
La Formula E può correre su un tracciato vero? Reportage da Misano con Jaguar TCS Racing
Abbiamo visto ancora una volta la Formula E da vicino, ospiti di Jaguar TCS Racing. In questa occasione però curve e rettilinei erano quelli di un circuito permanente, molto diverso dagli stretti passaggi delle strade di Roma
Lenovo LEGION e LOQ: due notebook diversi, stessa anima gaming
Lenovo LEGION e LOQ: due notebook diversi, stessa anima gaming
Lenovo ha puntato forte sul gaming negli ultimi anni e lo testimoniano i marchi LEGION e LOQ, il primo per gli amanti delle massime prestazioni e dell'assenza di compromessi, il secondo per chi desidera soluzioni dal buon rapporto tra prestazioni e prezzo. Abbiamo provato due esponenti dell'offerta, così da capire l'effettiva differenza prestazionale.
Nothing Ear e Ear (a): gli auricolari per tutti i gusti! La ''doppia'' recensione
Nothing Ear e Ear (a): gli auricolari per tutti i gusti! La ''doppia'' recensione
Nothing propone sul mercato non uno ma ben due auricolari nuovi: Ear di terza generazione e Ear (a) ossia un nuovo modello a basso costo pronto a ritagliarsi una fetta di mercato. Entrambi rimangono fedeli al marchio per il design ancora trasparente ma fanno un balzo in avanti notevole per qualità e soppressione del rumore.  
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 11-09-2018, 21:01   #1
vicko98
Junior Member
 
Iscritto dal: Aug 2018
Messaggi: 4
[C] Inserimento ordinato in lista con due variabili

Salve,

Mi trovo alle prese con un esercizio in cui è richiesto un inserimento ordinato di dati prima per cognome, se vengono trovati cognomi uguali si ordina per nome. fare un inserimento con un singolo confronto non è complicato, infatti fino a li non ho nessun problema. Quando però inserisco dati che hanno lo stesso cognome, non riscontro problemi fino al secondo inserimento, al terzo non ordina più...

Il codice è questo:

Codice:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

struct vettura
{
  char marca[11];
  char modello[21];
  int anno;
  struct vettura *next;
};
struct lista
{
  char cognome[21];
  char nome[21];
  char fiscale[12];
  char email[21];
  struct vettura *vet;
  struct lista *next;
 };

 void socio(struct lista **list)
 {
    struct lista *p,*t=*list,*g;
    p=(struct lista*)malloc(sizeof(struct lista));
    p->next=NULL;
    p->vet=NULL;
    fflush(stdin);
    printf("Insert surname: ");
    gets(p->cognome);
    fflush(stdin);
    printf("Insert name:  ");
    gets(p->nome);
    fflush(stdin);

    if(*list==NULL)
    {
        *list=p;
        return;
    }
    else
    {
        for(g=*list;g!=NULL&&(strcmp(g->cognome,p->cognome)<0);t=g,g=g>next)
            {
                printf("Cognome in lista: %s \t",g->cognome);
                printf("Conome da inserire: %s \n",p->cognome);
                if(strcmp(t->cognome,p->cognome)==0)
                    {
                        if(strcmp(t->nome,p->nome)<0)
                        {
                            break;
                        }
                    }

            }
        if(t==g)
            {
                p->next=*list;
                *list=p;
                return;
            }
        else
            {
                t->next=p;
                p->next=g;
                return;
            }
    }
  }
  void stampa(struct lista **list)
  {
    struct lista *scorri=*list;
    while(scorri!=NULL)
    {
        printf("surname: %s \t name: %s \n",scorri->cognome,scorri->nome);
        scorri=scorri->next;
    }
  }


 int main()
 {
  struct lista *list=NULL;
  socio(&list);
  socio(&list);
  socio(&list);
  stampa(&list);
 }
Qualcuno sa come posso risolvere questo problema?

Grazie in anticipo.
vicko98 è offline   Rispondi citando il messaggio o parte di esso
Old 12-09-2018, 13:26   #2
sottovento
Senior Member
 
L'Avatar di sottovento
 
Iscritto dal: Nov 2005
Città: Texas
Messaggi: 1722
Ciao

Codice:
        // Sottovento - questo ciclo va bene, continua a scandire fino a trovare il posto giusto
        for(g=*list;g!=NULL&&(strcmp(g->cognome,p->cognome)<0);t=g,g=g>next)
            {
                printf("Cognome in lista: %s \t",g->cognome);
                printf("Conome da inserire: %s \n",p->cognome);
                if(strcmp(t->cognome,p->cognome)==0)
                    {
                        // Sottovento - qui occorre fare come il ciclo che hai fatto sopra, per scandire i nomi
                        if(strcmp(t->nome,p->nome)<0)
                        {
                            break;
                        }
                    }

            }
__________________
In God we trust; all others bring data
sottovento è offline   Rispondi citando il messaggio o parte di esso
Old 12-09-2018, 20:37   #3
vicko98
Junior Member
 
Iscritto dal: Aug 2018
Messaggi: 4
ci ero vicino..grazie! Risolto.
vicko98 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


La Formula E può correre su un tracciato vero? Reportage da Misano con Jaguar TCS Racing La Formula E può correre su un tracciato ...
Lenovo LEGION e LOQ: due notebook diversi, stessa anima gaming Lenovo LEGION e LOQ: due notebook diversi, stess...
Nothing Ear e Ear (a): gli auricolari per tutti i gusti! La ''doppia'' recensione Nothing Ear e Ear (a): gli auricolari per tutti ...
Sony FE 16-25mm F2.8 G: meno zoom, più luce Sony FE 16-25mm F2.8 G: meno zoom, più lu...
Motorola edge 50 Pro: design e display al top, meno il prezzo! Recensione Motorola edge 50 Pro: design e display al top, m...
HiSolution amplia i propri servizi e pun...
F1 24 introdurrà migliorie al mod...
Arriva Omnissa, che prenderà in c...
Turista americano torna dall'Europa e si...
Larian al lavoro su due nuovi giochi, cr...
Microsoft Office LTSC 2024 disponibile i...
Fallout 4 è il gioco più v...
Razer Kishi Ultra: ecco il controller pe...
Il Dimensity 6300 di MediaTek porta il 5...
Google combina i team Android, Chrome e ...
Axiante vuole indagare come le imprese i...
Italia quinto mercato europeo per i vide...
Apple celebra la Giornata della Terra co...
La funzionalità 'AI Explorer' di ...
ASUS ROG Ally: la versione più potente c...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 23:41.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Served by www3v