Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Gigabyte MO32U24 OLED: il 4K a 240Hz su un pannello OLED ideale per il gaming
Gigabyte MO32U24 OLED: il 4K a 240Hz su un pannello OLED ideale per il gaming
Pannello QD-OLED da 32 pollici con risoluzione 4K, frequenza di aggiornamento a 240Hz e tempi di risposta rapidissimi: il Gigabyte MO32U24 evolve il progetto del suo predecessore MO32U e alza ulteriormente l'asticella delle prestazioni. È ancora una volta un monitor indirizzato ai giocatori più esigenti
Recensione realme 16 5G: lo smartphone con Selfie Mirror ha una batteria da 6550mAh
Recensione realme 16 5G: lo smartphone con Selfie Mirror ha una batteria da 6550mAh
realme 16 5G è un nuovo smartphone con sensore Sony IMX 852 da 50MP sul retro e uno specchio selfie fisico integrato nella camera bar, una prima nel segmento di mercato. Batteria da 6550mAh in un corpo da 8,1mm e 183g, certificazione IP69K e ricarica da 45W completano un pacchetto aggressivo per la fascia media, per uno dei prodotti più interessanti del produttore sul piano commerciale
Come rispettare tutte le nuove regole per i monopattini elettrici? La guida per non rischiare sanzioni
Come rispettare tutte le nuove regole per i monopattini elettrici? La guida per non rischiare sanzioni
Sono ormai definitive le nuove norme del Codice della Strada per i monopattini elettrici. Non solo targa e assicurazione, le regole sono tante e riguardano diversi aspetti, vi spieghiamo come evitare sanzioni che possono essere salate
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


Gigabyte MO32U24 OLED: il 4K a 240Hz su un pannello OLED ideale per il gaming Gigabyte MO32U24 OLED: il 4K a 240Hz su un panne...
Recensione realme 16 5G: lo smartphone con Selfie Mirror ha una batteria da 6550mAh Recensione realme 16 5G: lo smartphone con Selfi...
Come rispettare tutte le nuove regole per i monopattini elettrici? La guida per non rischiare sanzioni Come rispettare tutte le nuove regole per i mono...
DLSS 4.5: con Dynamic Frame Generation e MFG 6X NVIDIA alza la posta DLSS 4.5: con Dynamic Frame Generation e MFG 6X ...
Plaud NotePin S, il registratore IA si fa indossabile (ma è facile da perdere) Plaud NotePin S, il registratore IA si fa indoss...
AMD Ryzen 9 7950X3D danneggiato: approva...
I Mac con chip Apple Silicon hanno meno ...
Scandalo nel Regno Unito: agente sotto i...
TOP 15 offerte Amazon del weekend: 10 tu...
DJI Neo Fly More Combo a 245€: il mini d...
JBL Live Beam 3 a 129€ invece di 199€ su...
L'FBI ha costruito una città segr...
AMD usa il MacBook Neo come bersaglio in...
Intel prepara 'Raptor Lake Next'? Nel 20...
Una telefonata del CEO di Amazon dietro ...
Grazie a GLIMPSE-17775 il telescopio spa...
Samsung Galaxy A27 5G è ufficiale...
TCL aggiorna la sua gamma di monitor per...
Anche OPPO avrà uno smartphone co...
La Radeon RX 9070 XT appare su Steam e m...
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: 11:45.


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