gpt4 book ai didi

c - c 中的矩阵和对角线任务

转载 作者:行者123 更新时间:2023-11-30 21:27:57 25 4
gpt4 key购买 nike

我有一个 n*n 维度的矩阵。对于给定的整数k,我必须从对角线打印元素。

enter image description here

从图片来看:对于 k=0,它必须打印一个 vector :1,12,23,34

我该怎么做?

最佳答案

一个简单的方法可以如下所示

#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;
}

程序输出可能如下所示

Select a diagonal (-4, 4): 2
3 14

Select a diagonal (-4, 4): -2
21 32

或者您可以使用一个循环来代替具有单独循环的 if-else 语句

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' );

关于c - c 中的矩阵和对角线任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46798908/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com