Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    [C] diagonali in una matrice

    Salve a tutti, sto scrivendo un programma in C dove tra le varie cose da fare devo, data una posizione di partenza di posto [x,y] di una matrice quadrata, scorrere le diagonali e per esempio, metterci in ogni posto 0. Per esempio per una matrice 5x5

    1 2 3 4 5
    6 7 8 9 10
    11 12 13 14 15
    16 17 18 19 20
    21 22 23 24 25

    se scelgo come punto di partenza [x,y]= [2,3] (quindi dove c'è 14) devo ottenere:

    1 0 3 4 5
    6 7 0 9 0
    11 12 13 0 15
    16 17 0 19 0
    21 0 23 24 25

    Ho provato a scrivere qualcosa ma finora mi sono ingarbugliato in tanti cicli e non ne cavo piede!!

    Sapreste dirmi come posso fare? Vi ringrazio in anticipo! I

  2. #2
    Utente di HTML.it L'avatar di minomic
    Registrato dal
    Nov 2010
    Messaggi
    635
    Ciao,

    idea semplice: prima vai verso alto-sx, sottraendo 1 al numero di riga e 1 al numero di colonna. Questo fino a quando rimani in una posizione valida (cioè nessuno dei due indici diventa negativo). Poi ripeti per la direzione alto-dx: sottrai 1 al numero di riga e sommi 1 al numero di colonna. Questo fino a quando l'indice di riga non diventa negativo o l'indice di colonna non raggiunge numColonne (che sarebbe la larghezza della matrice). Poi ripeti in modo analogo per le direzioni basso-sx e basso-dx e hai finito.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.