Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*Scrivere una funzione che determini la lunghezza
- * di una lista presa in input
- * scrivere una funzione che stampi l'ennesimo elemento nella lista,
- * se non ce deve visualizzare un messaggio appropriato */
- #include <stdio.h>
- #include <stdlib.h>
- //funzione crea lista, che termina con l'inserimento dello zero
- struct elemento {
- int num;
- struct elemento *next;
- };
- //funzione uno crea lista con una seq di interi in input
- struct elemento *creaListaSeq(){
- int numero;
- struct elemento *primo=NULL;
- struct elemento *puntatore;
- printf("Inserisci il primo numero:\n");
- scanf("%d",&numero);
- //se ha inserito zero termina subito
- if(numero==0)
- return primo;
- if(numero!=0){
- primo=malloc(sizeof(struct elemento));
- primo->num=numero;
- }
- puntatore=primo;
- //ora faccio gli altri elementi
- //lettura del prosssimo numero
- printf("Inserisci il numero:\n");
- scanf("%d",&numero);
- while(numero!=0){
- puntatore->next=malloc(sizeof(struct elemento));
- puntatore=puntatore->next;
- puntatore->num=numero;
- printf("Inserisci il numero:\n");
- scanf("%d",&numero);
- }
- puntatore->next=NULL;
- return primo;
- }
- //determina lunghezza lista
- //FUNZIONA
- int lunghezzaLista(struct elemento *lista){
- int risultato;
- risultato=0;
- struct elemento *puntatore;
- puntatore=lista;
- while(puntatore!=NULL){
- risultato++;
- puntatore=puntatore->next;
- }
- return risultato;
- }
- //FUNZIONE STAMPA ENNESIMO ELEMENTO DELLA LISTA
- //funziona
- void stampaEnnesimo(struct elemento *lista, int num){
- struct elemento *puntatore;
- puntatore=lista;
- int cont;
- cont=1;
- while(puntatore!=NULL){
- if(cont==num){
- printf(" Numero in posizione %d: %d", cont,puntatore->num);
- return;
- }
- cont++;
- puntatore=puntatore->next;
- }
- printf("La lista non ha %d elementi", num);
- }
- int main(){
- struct elemento *lista;
- lista=creaListaSeq();
- int risultato;
- int stampa;
- risultato=lunghezzaLista(lista);
- printf("Numero elementi: %d\n", risultato);
- printf("Elemento in quale posizione vuoi visualizzare? \n");
- scanf("%d", &stampa);
- stampaEnnesimo(lista,stampa);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment