Funzione su una matrice
// Scrivi un programma che, dato un vettore di m elementi, lo sistemi su una matrice m*m avente come
//prima riga gli elementi del vettore
// e nelle successive righe gli stessi valori moltiplicati per lndice della riga (prima, seconda...).
//Crea una funzione esterna.


Non capisco perché il compilatore si fa tutti questi problemi.
Ho fatto attenzione a tutto:
1) Vettore e matrice sono passati per riferimento (automaticamente).
2) Le dimensioni sono specificate.
3) C'è il prototipo.
4) La funzione e la chiamata hanno parametri che corrispondono.
DOVE CAVOLO E' IL PROBLEMA?
Sono ore che insisto...
Grazie a chi mi aiuterà
//prima riga gli elementi del vettore
// e nelle successive righe gli stessi valori moltiplicati per lndice della riga (prima, seconda...).
//Crea una funzione esterna.


Non capisco perché il compilatore si fa tutti questi problemi.
Ho fatto attenzione a tutto:
1) Vettore e matrice sono passati per riferimento (automaticamente).
2) Le dimensioni sono specificate.
3) C'è il prototipo.
4) La funzione e la chiamata hanno parametri che corrispondono.
DOVE CAVOLO E' IL PROBLEMA?
Sono ore che insisto...
Grazie a chi mi aiuterà
Risposte
ciao!
1) usa le costanti per dimensionare gli array e le matrici
2) non puoi scrivere una cosa del genere : void creamatrice(int m, int v[m], int t[m][m])
anche qui usa delle costanti al posto della m
3) quando passi i vettori alla funzione, la sintassi corretta è:
creamatrice(n,a,b);
niente quadre
1) usa le costanti per dimensionare gli array e le matrici
2) non puoi scrivere una cosa del genere : void creamatrice(int m, int v[m], int t[m][m])
anche qui usa delle costanti al posto della m
3) quando passi i vettori alla funzione, la sintassi corretta è:
creamatrice(n,a,b);
niente quadre
Ok... Apportando le modifiche che mi hai detto tu, il programma parte.
Ho tolto la variabile m perché se la dim è costante, la m perde di significato.

Però sono stato costretto a rendere inutile la funzione, perché è troppo specifica: lavora solo se la dimensione del vettore (e dunque il lato della matrice) è 4.
Come posso risolvere il problema?
Ho tolto la variabile m perché se la dim è costante, la m perde di significato.

Però sono stato costretto a rendere inutile la funzione, perché è troppo specifica: lavora solo se la dimensione del vettore (e dunque il lato della matrice) è 4.
Come posso risolvere il problema?
fin quanto non studierai l'allocazione dinamica delle variabili l'unica cosa che puoi fare è mettere una costante abbastanza grande per i tuoi scopi