Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #define DIM 50
- struct nodo {
- char nome [DIM];
- char cognome [DIM];
- int matricola;
- struct nodo *next;
- };
- struct nodo *aggiungi (struct nodo *testa) {
- int numerostudenti;
- int i;
- printf("Quanti studenti vuoi inserire?\n");
- scanf("%d", &numerostudenti);
- if (numerostudenti==NULL){
- printf("La lista e' vuota, non abbiamo aggiunto studenti!\n");
- }
- else{
- testa=malloc(sizeof(struct nodo));
- printf("inserisci nome del primo studente\n");
- fgets(testa->nome,DIM,stdin);
- printf("inserisci cognome del primo studente\n");
- fgets(testa->cognome, DIM, stdin);
- printf("inserisci matricola del primo studente\n");
- scanf("%d",&testa->matricola);
- struct nodo *p=NULL;
- p=testa;
- for (i=2;i<=numerostudenti;i++){
- while(p!=NULL) {
- p=malloc(sizeof(struct nodo));
- printf("inserisci nome e cognome dello studente\n");
- fgets(p->nome, DIM, stdin);
- fgets(p->cognome, DIM, stdin);
- printf("inserisci matricola dello studente\n");
- scanf("%d",&p->matricola);
- p=p->next;
- }
- p->next=NULL;
- }
- }
- return testa;
- };
- void visualizzalista (struct nodo *testa) {
- struct nodo *p=NULL;
- if(testa==NULL){
- printf("La lista e' vuota!");
- }
- else{
- p=testa;
- while (p!=NULL) {
- printf("Visualizza nome e cognome dello studente %s %s\n", p->nome, p->cognome);
- fgets(p->nome, DIM, stdin);
- fgets(p->cognome, DIM, stdin);
- printf("Visualizza matricola dello studente %d\n", p->matricola);
- scanf("%d", &p->matricola);
- }
- if (p==NULL) {
- printf("siamo arrivati alla fine della lista\n");
- }
- }
- }
- struct nodo *elimina (struct nodo *testa) {
- int matricolacercata;
- if (testa==NULL) {
- printf("La lista e' vuota!\n");
- }
- else {
- struct nodo *p=NULL;
- struct nodo *prec=NULL;
- p=testa;
- while (p!=NULL && p->matricola!=matricolacercata) {
- p=p->next;
- }
- if (p=NULL) {
- printf("il valore cercato non e' presente nella lista\n");
- }
- else {
- printf("Ho trovato il valore da eliminare\n");
- prec->next=p->next;
- free(p);
- }
- }
- return testa;
- };
- int main()
- {
- struct nodo *testa=NULL;
- int scelta=-1;
- while(scelta!=0) {
- printf("MENU\n0. esci\n1.inseriscistudente\n2.visualizzalista\n3.eliminastudente\nSCELTA:\n");
- scanf("%d",&scelta);
- switch (scelta) {
- case 0: printf("ESCI dal programma!\n");
- break;
- case 1: testa= aggiungi(testa);
- break;
- case 2: visualizzalista(testa);
- break;
- case 3: testa=elimina(testa);
- break;
- default: printf("scelta non corretta!\n");
- }
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement