gpt4 book ai didi

c - 如何在C中按升序编写该矩阵的算法。我的代码中的错误在哪里?

转载 作者:行者123 更新时间:2023-11-30 18:24:14 25 4
gpt4 key购买 nike

我正在编写这段代码,以螺旋顺序打印以下矩阵(按列螺旋)。但我的代码打印完全不同的东西。

a     a+7  a+8   a+15
a+1 a+6 a+9 a+14
a+2 a+5 a+10 a+13
a+3 a+4 a+11 a+12

这是我所做的:

int main() {
int a;
int Sum = 0;
int i = 0, j = 0,n;
printf("Insert the value of n: ");
scanf("%d",&n);

printf("Insert the value of a number: ");
scanf("%d",&a);

for(i=0;i<n;i++){
for(j=0;j<n;j++){
printf("%d ",a);
a = a + 7;
printf("\t");
}

printf("%d",a);
a = a + 1 ;

printf("\n");
}

return 0;
}

最佳答案

我的方法是构建您实际想要的值矩阵,但按顺序进行,这样我们就可以相对轻松地按行控制值进展的逻辑。然后,使用该矩阵,按照您想要的输出,按顺序打印出值:

int main()
{
int a = 7;
int n = 4;
int array[4][4];

for (int c=0; c < n; ++c)
{
for (int r=0; r < n; ++r)
{
// values ascending for even columns
if (c % 2 == 0)
{
array[r][c] = a + c*n + r;
}
// values descending for odd columns
else
{
array[r][c] = a + c*n + n-r-1;
}
}
}

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

输出:

enter image description here

此处演示:

Rextester

关于c - 如何在C中按升序编写该矩阵的算法。我的代码中的错误在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43224706/

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