Pogrammino in C: matrice 10x10

Pivot1
Ciao a tutti.
Devo scrivere un programma in C che parmetta all'utente di popolare gli elementi delle righe di posto dispari di una matrice quadrata 10x10.

Ho provato di impostarlo cosi, cioè di far inserire manualmete all'utente tutti gli elementi...ma non mi convince molto :? in particolare non riesco a capire come faccio a dirgli degli elementi di posto dispari!

#include
#define SIZE 10

int main()
{

/* dichiarazioni e inizializzazioni */

int array[SIZE][SIZE];
int i=0, j=0;

/* prende in input gli intari da tastiera a li mette in un vettore multidimensionale*/

for(i=0, i for(j=0, j printf("inserire i valori [%d%d]", i+1, j+1);
scanf("%d", &array[j]);
}}

/* vistualizza la matrice */

printf("la matrice inserita è\n");

for(i = 0; i < SIZE; i++) {
for(j = 0; j < SIZE; j++) {
printf("%4d", a[j]);
}
printf("\n");
}
}

esattamente come quello dell'array palindromo ma gli ho cambiato la dimensione in define....Ora non riesco a capire una cosa, come gli dico popolami gli elemendi di posto dispari!
Quello che voglio ottenere è una matrice 10x10 con posti dispari digitati da tastiera e altrove 0.

Risposte
codino75
secondo me molto semplicemente puoi farlo (in modo qndi non ottimizzato, ma trattasi di inserimento da tastiera, quindi direi che va bene ugualmente) allinterno dei 2 cicli for, dove gia' fai la popolazione della matrice, semplicemtne aggiungendo un if:

se(gli indici correnti i e j sono dispari)
allora [popola la matrice con l'elemento i,j inserito da tastiera]
altrimenti [popola la matrice con l'elemento i,j pari a 0]

Pivot1
grazie Sergio. solo non ho bel chiaro il significato del costrutto if (i % 2 == 0)
Cioè vuoi dire che se il resto di i diviso due è uguale a zero allora inserisco i numeri....

Sul libro poi ho trovato un espressione del genere
if ( !(i & 1) )
cosa significa....

Pivot1
ok, ma consideriamo una variante del problema.
Se volessi popolare, gli elementi della diagonale principale di una matrice 10x10 con 1 e altrove 0?
Stavo pensando che in questo caso potrebbe essere superfluo far digitare all'utente sempre il valore 1 che poi andra sulla diagonale principale.....

lorven
"Pivot":
ok, ma consideriamo una variante del problema.
Se volessi popolare, gli elementi della diagonale principale di una matrice 10x10 con 1 e altrove 0?
Stavo pensando che in questo caso potrebbe essere superfluo far digitare all'utente sempre il valore 1 che poi andra sulla diagonale principale.....

Pensi bene! :D

Pivot1
qualche dritta su come procedere?

lorven
Potresti usare i soliti due cicli e, nel "for" interno, verificare se si è sulla diagonale principale o no, e quindi assegnare 1 o 0 ...
Provaci, non è difficile ;-)

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.