Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Test ride con Gowow Ori: elettrico e off-road vanno incredibilmente d'accordo
Test ride con Gowow Ori: elettrico e off-road vanno incredibilmente d'accordo
Abbiamo provato per diversi giorni una new entry del mercato italiano, la Gowow Ori, una moto elettrica da off-road, omologata anche per la strada, che sfrutta una pendrive USB per cambiare radicalmente le sue prestazioni
Recensione OnePlus 15: potenza da vendere e batteria enorme dentro un nuovo design
Recensione OnePlus 15: potenza da vendere e batteria enorme dentro un nuovo design
OnePlus 15 nasce per alzare l'asticella delle prestazioni e del gaming mobile. Ma non solo, visto che integra un display LTPO 1,5K a 165 Hz, OxygenOS 16 con funzioni AI integrate e un comparto foto con tre moduli da 50 MP al posteriore. La batteria da 7.300 mAh con SUPERVOOC 120 W e AIRVOOC 50 W è la ciliegina sulla torta per uno smartphone che promette di offrire un'esperienza d'uso senza alcun compromesso
AMD Ryzen 5 7500X3D: la nuova CPU da gaming con 3D V-Cache per la fascia media
AMD Ryzen 5 7500X3D: la nuova CPU da gaming con 3D V-Cache per la fascia media
Vediamo come si comporta il Ryzen 5 7500X3D, nuovo processore di casa AMD che fonde 6 core Zen 4 con la tecnologia 3D V-Cache, particolarmente utile in scenari come il gaming. Annunciato a un prezzo di listino di 279€, il nuovo arrivato sarà in grado di diventare un riferimento per i sistemi budget? Ecco cosa ne pensiamo.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 02-01-2008, 18:21   #41
xbubbax
Senior Member
 
Iscritto dal: Apr 2007
Messaggi: 381
è completo con tanto di stmapa della lista ma mi da errore dopo che ho inserito tutti gli elementi

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

struct nodo{
       int elem;
       struct nodo *next;
       };

typedef struct nodo  L_ELEM;
typedef struct nodo *listaPtr;

listaPtr eliminaPrimo(listaPtr l, int k)
{
	listaPtr prev,curr,tempPtr;
	if (k==l->elem){
		tempPtr=l;
		l=l->next;
		free(tempPtr);
		return l;
	}
	else{
		prev=l;
		curr=l->next;
		while ((curr!=NULL) && (curr->elem != k)){
			prev=curr;
			curr=curr->next;
		}
		if (curr !=NULL){
			tempPtr=curr;
			prev->next=curr->next;
			free(tempPtr);
			return l;
		}
		return l;

	}}
	
void stampalista(listaPtr l)
{
if (l!=NULL)
{
	printf("%d ",l->elem);
	stampalista(l->next);
}}


int main(){
    
    listaPtr l;
    
    int n=0;
    int i=0;
    int k=0;
    int valore=0;
    
    scanf("%d", &n);
    
    for(i=0;i<n;i++){
                     listaPtr l=(listaPtr)malloc(sizeof(struct nodo));
                     scanf("%d", &valore);
                     l->elem=valore;
                     l=l->next;

                     }
                     
    scanf("%d", &k);
   
   stampalista(l); 
}
xbubbax è offline   Rispondi citando il messaggio o parte di esso
Old 02-01-2008, 19:18   #42
supermario
Senior Member
 
L'Avatar di supermario
 
Iscritto dal: Oct 2001
Messaggi: 7906
Codice:
#include <stdio.h>
#include <stdlib.h>

typedef struct nodo{
       int elem;
       struct nodo *next;
       }nodo_t;

//nodo_t listaPtr;
//typedef struct nodo  L_ELEM;

//listaPtr eliminaPrimo(listaPtr l, int k)
//{
//	listaPtr prev,curr,tempPtr;
//	if (k==l->elem){
//		tempPtr=l;
//		l=l->next;
//		free(tempPtr);
//		return l;
//	}
//	else{
//		prev=l;
//		curr=l->next;
//		while ((curr!=NULL) && (curr->elem != k)){
//			prev=curr;
//			curr=curr->next;
//		}
//		if (curr !=NULL){
//			tempPtr=curr;
//			prev->next=curr->next;
//			free(tempPtr);
//			return l;
//		}
//		return l;
//
//	}}

void stampalista(nodo_t *l)
{
while (l != NULL)
{
	printf("%d ",l->elem);
	l=l->next;
	//stampalista(l->next);
}
}


int main(){

    nodo_t *listaPtr=NULL;
    nodo_t *tmp;

    int n=0;
    int i=0;
    int k=0;
    int valore=0;

    printf("Num elem \n");

    scanf("%d", &n);

    printf("elem sono %d\n", n);

    for(i=0;i<n;i++){
                     tmp=(nodo_t*)malloc(sizeof(nodo_t));
                     printf("Elemento %d \n", i+1);
                     scanf("%d", &valore);
                     tmp->elem=valore;
                     tmp->next=listaPtr;
                     listaPtr=tmp;

                     }
                     //listaPtr->next=NULL;

    //scanf("%d", &k);

   stampalista(listaPtr);

   return 0;
}
non dire che non ti voglio bene

l'inserimento l'ho messo in testa

hai notato i cambiamenti che ho fatto?

la cosa fondamentale è l'inserimento del benedetto nodo temp, è lui che va allocato, non il puntatore alla testa

poi ti ho cambiato la funziona stampalista, completamente sbagliata(sbagliando avevi fatto una sorta di ricorsione senza fine...e ricorsione sulle liste è sadomaso )

nota come ti ho modificato la struttura e eliminato i tuoi typedef, la sintassi così è + corretta

se hai domande e hai msn ne riparliamo li

ps la funzione per l'elemento k riscrivila in base alla funzione stampa lista, modificando opportunamente il while e le operazioni della funzione
supermario è offline   Rispondi citando il messaggio o parte di esso
Old 02-01-2008, 19:48   #43
xbubbax
Senior Member
 
Iscritto dal: Apr 2007
Messaggi: 381
ti ringrazio ora me lo vedo per bene...
xbubbax è offline   Rispondi citando il messaggio o parte di esso
Old 02-01-2008, 19:51   #44
xbubbax
Senior Member
 
Iscritto dal: Apr 2007
Messaggi: 381
cosa sono tutti quegli //// che hai messo?

ho provato a toglierli ma non funziona il programma
xbubbax è offline   Rispondi citando il messaggio o parte di esso
Old 02-01-2008, 19:59   #45
supermario
Senior Member
 
L'Avatar di supermario
 
Iscritto dal: Oct 2001
Messaggi: 7906


se c'è un // all'inizio di una riga, vuol dire che è commentata

è lo stesso di /* */ solo che non è ANSI c

se togli i commenti il programma non funzia xk le righe lo mandano in crash(è codice che non funziona/fa altre cose)

parti dal programma che ti ho postato e cancella tutte le righe commentate, sono cazzate(un pò tue un pò mie )
supermario è offline   Rispondi citando il messaggio o parte di esso
Old 02-01-2008, 19:59   #46
xbubbax
Senior Member
 
Iscritto dal: Apr 2007
Messaggi: 381
li ho tolti ora sto modificando quello che dicevi spero sia solo quello
xbubbax è offline   Rispondi citando il messaggio o parte di esso
Old 02-01-2008, 20:02   #47
xbubbax
Senior Member
 
Iscritto dal: Apr 2007
Messaggi: 381
mi sembra corretto tutto, dov'è l'errore?

p.s.ho tolto i printf non servono

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


typedef struct nodo{
       int elem;
       struct nodo *next;
       }nodo_t;

nodo_t listaPtr;
typedef struct nodo  L_ELEM;

listPtr eliminaPrimo(listaPtr l, int k)
{
	listaPtr prev,curr,tempPtr;
	if (k==l->elem){
		tempPtr=l;
		l=l->next;
		free(tempPtr);
		return l;
	}
	else{
		prev=l;
		curr=l->next;
		while ((curr!=NULL) && (curr->elem != k)){
			prev=curr;
			curr=curr->next;
		}
		if (curr !=NULL){
			tempPtr=curr;
			prev->next=curr->next;
			free(tempPtr);
		return l;
		}
		return l;

	}}

void stampalista(nodo_t *l)
{
while (l != NULL)
{
	printf("%d ",l->elem);
	l=l->next;
	stampalista(l->next);
}
}


int main(){

    nodo_t *listaPtr=NULL;
    nodo_t *tmp;

    int n=0;
    int i=0;
    int k=0;
    int valore=0;

    scanf("%d", &n);

    for(i=0;i<n;i++){
                     tmp=(nodo_t*)malloc(sizeof(nodo_t));
                     scanf("%d", &valore);
                     tmp->elem=valore;
                     tmp->next=listaPtr;
                     listaPtr=tmp;

                     }
                     listaPtr->next=NULL;

    scanf("%d", &k);

   stampalista(listaPtr);
   system("PAUSE");
   return 0;
}
xbubbax è offline   Rispondi citando il messaggio o parte di esso
Old 02-01-2008, 20:11   #48
supermario
Senior Member
 
L'Avatar di supermario
 
Iscritto dal: Oct 2001
Messaggi: 7906
@ andbin

che non sia detto che non so fare un adt di primo livello

questo programmillo che ho fatto come esercizio dell'uni ha tra le sue funzioni le 2 che servono a xbubbax, anche se sono con un FIFO e l'estrazione è solo del primo elemento

era per la gloria, scusate

@ xbubbax
Codice:
nodo_t listaPtr;
typedef struct nodo  L_ELEM;
listaPtr->next=NULL;
sti tre non servono, cancellali

Codice:
listPtr eliminaPrimo(listaPtr l, int k) // NO! ci va nodo_t *l, int k
{
	listaPtr prev,curr,tempPtr; // NO! ci va nodo_t *prev,*curr,*tempPtr
a occhio è solo questo, magari c'è altro prova un pò

ariedit....

Codice:
stampalista(l->next);
questo non ci va assolutamente

Ultima modifica di supermario : 31-05-2011 alle 12:30.
supermario è offline   Rispondi citando il messaggio o parte di esso
Old 02-01-2008, 20:17   #49
xbubbax
Senior Member
 
Iscritto dal: Apr 2007
Messaggi: 381
non funziona ancora mi dice sintax error before elminaPrimo

e altre cosette
xbubbax è offline   Rispondi citando il messaggio o parte di esso
Old 02-01-2008, 20:25   #50
supermario
Senior Member
 
L'Avatar di supermario
 
Iscritto dal: Oct 2001
Messaggi: 7906
tagliamo la testa al toro
Codice:
#include <stdio.h>
#include <stdlib.h>


typedef struct nodo{
       int elem;
       struct nodo *next;
       }nodo_t;


nodo_t *eliminaElem(nodo_t *l, int k)
{
	nodo_t *prev,*curr,*tempPtr;
	if (k==l->elem){
		tempPtr=l;
		l=l->next;
		free(tempPtr);
		return l;
	}
	else{
		prev=l;
		curr=l->next;
		while ((curr!=NULL) && (curr->elem != k)){
			prev=curr;
			curr=curr->next;
		}
		if (curr !=NULL){
			tempPtr=curr;
			prev->next=curr->next;
			free(tempPtr);
		return l;
		}
		return l;

	}}

void stampalista(nodo_t *l)
{
while (l != NULL)
{
	printf("%d -> ",l->elem);
	l=l->next;
}
}


int main(){

    nodo_t *listaPtr=NULL;
    nodo_t *tmp;

    int n=0;
    int i=0;
    int k=0;
    int valore=0;

    scanf("%d", &n);

    for(i=0;i<n;i++){
                     tmp=(nodo_t*)malloc(sizeof(nodo_t));
                     scanf("%d", &valore);
                     tmp->elem=valore;
                     tmp->next=listaPtr;
                     listaPtr=tmp;

                     }

    scanf("%d", &k);
   eliminaElem(listaPtr,k);
   stampalista(listaPtr);
   system("PAUSE");
   return 0;
}
supermario è offline   Rispondi citando il messaggio o parte di esso
Old 02-01-2008, 20:27   #51
xbubbax
Senior Member
 
Iscritto dal: Apr 2007
Messaggi: 381
funziona grazieee
xbubbax è offline   Rispondi citando il messaggio o parte di esso
Old 02-01-2008, 20:30   #52
supermario
Senior Member
 
L'Avatar di supermario
 
Iscritto dal: Oct 2001
Messaggi: 7906
10 eurozzi su postepay
supermario è offline   Rispondi citando il messaggio o parte di esso
Old 02-01-2008, 21:58   #53
xbubbax
Senior Member
 
Iscritto dal: Apr 2007
Messaggi: 381
ahahaha

comq ho fatto un esercizio simile però che deve eliminare tutte le occorrenze di un numero all'interno di una lista, ma invece di stampare i numeri che deve elminare stampa o 0, o il numero stesso o numeri enormi tipo 40232324.penso di non aver sbagliato niente visto che ho fatto quasi copia incolla per non stare a riscrivere tutto, al massimo c'è qualcosina all'interno della funzione però sembra ok

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

typedef struct nodo{
       int elem;
       struct nodo *next;
       }listaPtr;


listaPtr *eliminaTutti(listaPtr *l, int k){
         
         listaPtr *prev,*curr,*tempPtr;
         
         prev=l;
         curr=l->next;
         
         while(curr!=NULL){
                           if(curr->elem!=k){
                                             curr=curr->next;}else{
                                                                   tempPtr=curr;
                                                                   curr=curr->next;
                                                                   free(tempPtr);}}
         return l;}

void stampalista(listaPtr *l)
{
while (l != NULL)
{
	printf("%d ",l->elem);
	l=l->next;
}
}


int main(){

    listaPtr *listaPtrdue=NULL;
    listaPtr *tmp;

    int n=0;
    int i=0;
    int k=0;
    int valore=0;

    scanf("%d", &n);

    for(i=0;i<n;i++){
                     tmp=(listaPtr*)malloc(sizeof(listaPtr));
                     scanf("%d", &valore);
                     tmp->elem=valore;
                     tmp->next=listaPtrdue;
                     listaPtrdue=tmp;

                     }

    scanf("%d", &k);
   eliminaTutti(listaPtrdue,k);
   printf("\n");
   stampalista(listaPtrdue);
   system("PAUSE");
   return 0;
}
xbubbax è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Test ride con Gowow Ori: elettrico e off-road vanno incredibilmente d'accordo Test ride con Gowow Ori: elettrico e off-road va...
Recensione OnePlus 15: potenza da vendere e batteria enorme dentro un nuovo design   Recensione OnePlus 15: potenza da vendere e batt...
AMD Ryzen 5 7500X3D: la nuova CPU da gaming con 3D V-Cache per la fascia media AMD Ryzen 5 7500X3D: la nuova CPU da gaming con ...
SONY BRAVIA 8 II e BRAVIA Theatre System 6: il cinema a casa in formato compatto SONY BRAVIA 8 II e BRAVIA Theatre System 6: il c...
KTC H27E6 a 300Hz e 1ms: come i rivali ma a metà prezzo KTC H27E6 a 300Hz e 1ms: come i rivali ma a met&...
Sempre più IA su Spotify: arrivan...
iMac M4 crolla a 1.199€ con risparmio di...
Nintendo Switch 2: in rilascio un nuovo ...
Core Ultra 9 290K Plus, Core Ultra 7 270...
Prezzo Black Friday per le super cuffie ...
Crollano i prezzi della cuffie Beats col...
ASUS ROG Matrix RTX 5090 costa 4000 doll...
Grazie ai dati di ESA il calcolo della t...
Rilasciati nuovi video e immagini della ...
Gli astronauti cinesi di Shenzhou-20 son...
Mai così tanti gas serra: il 2025...
Google condannata in Germania: favorito ...
Ubisoft rimanda i risultati finanziari e...
ADATA porta i primi moduli DDR5 CUDIMM 4...
Bob Iger anticipa le novità AI di...
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:35.


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