Problema con un programma in C sulle matrici
Problema con un programma in C sulle matrici
All'università mi hanno dato un programma da fare solo che ho un piccolo problema, vi posto il link dove andare a vedere il testo dato dal prof e il mio codice con tanto di spiegazione del problema che hò, se volete potete anche rispondere sull'altro link o qui è indifferente... Spero che mi possiate aiutare sto impazzendo...
http://www.turboweb.it/forum/ut__@ubutu ... 8633469743
Grazie a tutti per l'aiuto
http://www.turboweb.it/forum/ut__@ubutu ... 8633469743
Grazie a tutti per l'aiuto
Ultima modifica di Danlo8600 il venerdì 21 settembre 2007, 16:05, modificato 1 volta in totale.
- Rospo Zoppo
- Rampante Reduce

- Messaggi: 5291
- Iscrizione: martedì 16 gennaio 2007, 20:35
Re: Problema con un programma in C sulle matrici
Scusa ma tu devi mettere un valore e dire se è nella matrice ?
Re: Problema con un programma in C sulle matrici
esatto e anche in quale posizione della matrice si trova esempio:

funziona con tutti i numeri ora tranne che con 4...Spero che l'esempio sia stato chiaro
1 2 3 4
5 6 7 8
x = 5
5 è presente nella matrice e si trova a posizione : Riga 1 Colonna 0
- Rospo Zoppo
- Rampante Reduce

- Messaggi: 5291
- Iscrizione: martedì 16 gennaio 2007, 20:35
Re: Problema con un programma in C sulle matrici
Codice: Seleziona tutto
for (i=0; i < N; i++)
{
for (j=0; j < M; j++)
{
if (x == A[i][j] )
printf ("\n %d è in posizione %d %d", x, i, j);
}
}ma non è più semplice così ?
Re: Problema con un programma in C sulle matrici
si ma cosi facendo uso 2 iterazioni... che pultroppo non posso usare visto che è specificato tra parentesi CON UNA SOLA ITERAZIONE... (rotfl) è da (mad) sto programma...
- Rospo Zoppo
- Rampante Reduce

- Messaggi: 5291
- Iscrizione: martedì 16 gennaio 2007, 20:35
Re: Problema con un programma in C sulle matrici
in effetti non avevo capito il significato di quell'espressione ma il problema è di facile soluzione
Codice: Seleziona tutto
for (i=0; i < N*M; i++)
{
if (x == A[(i/M)][(i%M)] )
printf ("\n %d è in posizione %d %d \n", x, (i/M) +1, (i%M) +1);
}Re: Problema con un programma in C sulle matrici
ma erro o così facendo non và un granchè??? cioè così se metto 5 mi dice che è a posizione 2 1
ma a posizione 2 1 c'è nulla... le righe partono da 0 quindi poi c'è riga 1 ma riga 2 non c'è però anche se il 2 è per la colonna a riga 2 colonna 1 c'è il 6 e non il 5...oppure erro??
ma a posizione 2 1 c'è nulla... le righe partono da 0 quindi poi c'è riga 1 ma riga 2 non c'è però anche se il 2 è per la colonna a riga 2 colonna 1 c'è il 6 e non il 5...oppure erro??
Re: Problema con un programma in C sulle matrici
a ok non avvo visto i + che avevi messo...comunque spigami una cosa che cavolo hai fatto qui???
cosa vuoldire i /m ???? e i%m??? non capisco
altra cosa gli elementi della matrice li devo iniziare a contare da 0 o da 1???
Codice: Seleziona tutto
if (x == A[(i/m)][(i%m)] )altra cosa gli elementi della matrice li devo iniziare a contare da 0 o da 1???
- Rospo Zoppo
- Rampante Reduce

- Messaggi: 5291
- Iscrizione: martedì 16 gennaio 2007, 20:35
Re: Problema con un programma in C sulle matrici
posizione 2,1 intendevo seconda riga ma se vuoi puoi mettere uno togliendo i due +1 ....
questo
è il succo, si usa una sola variabile iterativa e conoscendo il numero di colonne (m) puoi ottenere la riga i/m e la colonna i%m ... i/m è la divisione intera di i per m mentre i % m dà il resto della divisione di i per m .... se ci pensi è giusto. ..
questo
Codice: Seleziona tutto
if (x == A[(i/m)][(i%m)] )Re: Problema con un programma in C sulle matrici
cavoli è vero allora sono un genio in sede di esami ci ero arrivato mooolto vicino a una cosa del genere però non sapevo che si potesse fare nelle [][]
grazie mille....hihihi ho imparato qualcosa di nuovo molto bene...
- Rospo Zoppo
- Rampante Reduce

- Messaggi: 5291
- Iscrizione: martedì 16 gennaio 2007, 20:35
Re: Problema con un programma in C sulle matrici
provalo per sicurezza, lo ho scritto qui in due minuti senza controllo... al massimo usi i puntatori e vai sul sicuro...
- difesaparcosempione
- Rampante Reduce

- Messaggi: 6031
- Iscrizione: giovedì 27 luglio 2006, 19:06
- Località: Torino
- Contatti:
Re: Problema con un programma in C sulle matrici
Scusate IL RITARDO (rotfl) ma io avrei fatto anche cosi ..
avrei creato una matrice bidimensionale in union con un vettore lungo quanto gli elementi della matrice.
Poi avrei letto la matrice con il vettore , usando il % modulo avrei beccato le coordinate ...
ciao

(good)
avrei creato una matrice bidimensionale in union con un vettore lungo quanto gli elementi della matrice.
Poi avrei letto la matrice con il vettore , usando il % modulo avrei beccato le coordinate ...
ciao
(good)
- Rospo Zoppo
- Rampante Reduce

- Messaggi: 5291
- Iscrizione: martedì 16 gennaio 2007, 20:35
Re: Problema con un programma in C sulle matrici
@ difesaparcosempione: non è un pochino troppo complicato rispetto alla risposta di cui sopra ?
- difesaparcosempione
- Rampante Reduce

- Messaggi: 6031
- Iscrizione: giovedì 27 luglio 2006, 19:06
- Località: Torino
- Contatti:
Re: Problema con un programma in C sulle matrici
(rotfl) no anzi ...
sfrutti il fatto che grazie alla union vedi una area di memoria con "viste" diverse.
Anzichè a struggermi per far n calcoli ho visitato l'area senza fare due cicli come voleva il testo dell'esercizio ...
Questa soluzione è stata pensata in n micro-secondi, l'unica attenzione per il programmatore è la gestione dell'indice in modulo.
ciao ciao
Forse forse cosi si fanno meno calcoli ...
ri ciao
(good)
sfrutti il fatto che grazie alla union vedi una area di memoria con "viste" diverse.
Anzichè a struggermi per far n calcoli ho visitato l'area senza fare due cicli come voleva il testo dell'esercizio ...
Questa soluzione è stata pensata in n micro-secondi, l'unica attenzione per il programmatore è la gestione dell'indice in modulo.
ciao ciao
Forse forse cosi si fanno meno calcoli ...
ri ciao
(good)
- Rospo Zoppo
- Rampante Reduce

- Messaggi: 5291
- Iscrizione: martedì 16 gennaio 2007, 20:35
Re: Problema con un programma in C sulle matrici
ma il testo ne richiedeva uno veramente..Anzichè a struggermi per far n calcoli ho visitato l'area senza fare due cicli come voleva il testo dell'esercizio ...
- difesaparcosempione
- Rampante Reduce

- Messaggi: 6031
- Iscrizione: giovedì 27 luglio 2006, 19:06
- Località: Torino
- Contatti:
Re: Problema con un programma in C sulle matrici
oops ho sbagliato a scrivere ...
Infatti con un solo loop (giro) , unico indice io riesco cosi a scovare l'elemento.
Il testo diceva con un SOLO indice ?
ciao

Infatti con un solo loop (giro) , unico indice io riesco cosi a scovare l'elemento.
Il testo diceva con un SOLO indice ?
ciao
- Rospo Zoppo
- Rampante Reduce

- Messaggi: 5291
- Iscrizione: martedì 16 gennaio 2007, 20:35
Re: Problema con un programma in C sulle matrici
il testo dice con una sola iterazione
- difesaparcosempione
- Rampante Reduce

- Messaggi: 6031
- Iscrizione: giovedì 27 luglio 2006, 19:06
- Località: Torino
- Contatti:
Re: Problema con un programma in C sulle matrici
quindi ok, (yes)
un lista (vettore) si naviga con una sola iterazione
BYE BYE
un lista (vettore) si naviga con una sola iterazione
BYE BYE
- Rospo Zoppo
- Rampante Reduce

- Messaggi: 5291
- Iscrizione: martedì 16 gennaio 2007, 20:35
Re: Problema con un programma in C sulle matrici
un'ultima considerazione però; se quello è un esercizio che gli è stato assegnato, non credo abbia fatto le strutture di cui parli.. 
- difesaparcosempione
- Rampante Reduce

- Messaggi: 6031
- Iscrizione: giovedì 27 luglio 2006, 19:06
- Località: Torino
- Contatti:
Re: Problema con un programma in C sulle matrici
Questo non lo so, comunque sarà bene che inpari l'utilizzo delle union !!
ciao
(b2b)
ciao
(b2b)
Chi c’è in linea
Visualizzano questa sezione: 0 utenti iscritti e 3 ospiti
