J'ai une matrice avec n * n dimensions. Pour un entier donné k Je dois imprimer des éléments à partir de diagonales.Tâche avec matrice et diagonales en c
de la photo: pour k = 0, il faut imprimer un vecteur: 1,12,23,34
.
Comment faire?
J'ai une matrice avec n * n dimensions. Pour un entier donné k Je dois imprimer des éléments à partir de diagonales.Tâche avec matrice et diagonales en c
de la photo: pour k = 0, il faut imprimer un vecteur: 1,12,23,34
.
Comment faire?
code pseudo:
function(martrix, k){
rowmax = matrix.length;
colmax = matrix[0].length;
output = []
for i = 0 to max(rowmax, colmax):
if k > 0 : x = i + k
if k < 0 : y = i + k
if(x < rowmax and y < colmax):
output.append(matrix[x][y])
}
Une approche directe peut regarder la façon suivante
#include <stdio.h>
#define N 4
int main(void)
{
int a[N][N] =
{
{ 1, 2, 3, 4 },
{ 11, 12, 13, 14 },
{ 21, 22, 23, 24 },
{ 31, 32, 33, 34 }
};
int k;
printf("Select a diagonal (%d, %d): ", -N, N);
scanf("%d", &k);
if (k < 0)
{
for (int i = -k, j = 0; i < N; i++, j++)
{
printf("%d ", a[i][j]);
}
}
else
{
for (int i = 0, j = k; j < N; i++, j++)
{
printf("%d ", a[i][j]);
}
}
putchar('\n');
return 0;
}
La sortie du programme pourrait ressembler à
Select a diagonal (-4, 4): 2
3 14
ou
Select a diagonal (-4, 4): -2
21 32
ou au lieu de l'if-else avec des boucles séparées vous pouvez utiliser une boucle comme par exemple
int i = k < 0 ? -k : 0;
int j = k > 0 ? k : 0;
for (; i < N && j < N; i++, j++)
{
printf("%d ", a[i][j]);
}
putchar('\n');
Pour un nouveau Comer, je dirai que SO n'est pas un Tutorial Site, mais comment puis-je vous dire ceci? :) – Michi
@Michi Pourquoi n'est-ce pas un site de tutoriel? Je le considère comme un site de tutoriel. Répondre à des questions J'apprends la programmation. :) –
Je pense que plus de 80% ici seront d'accord avec moi. Qui sait peut-être que je me trompe :). Ce genre de question n'est pas une question de SO de toute façon. – Michi
Quelle est votre question? pourriez-vous également ajouter le code de ce que vous avez essayé jusqu'ici? –
Vous allez obtenir le droit de vote, sauf si vous avez réellement posé une question, et b) montrez-nous ce que vous avez déjà fait. – RPGillespie
@TonyTannous ma question est comment puis-je faire ... –