gpt4 book ai didi

无法在C中创建数组

转载 作者:行者123 更新时间:2023-11-30 20:51:12 26 4
gpt4 key购买 nike

我正在尝试创建一个打印 1 到 40 之间数字的数组,如下所示:

1  5  9   13  17  21  25  29  33  37
2 6 10 14 18 22 26 30 34 38
3 7 11 15 19 23 27 31 35 39
4 8 12 16 20 24 28 32 36 40

我已经尝试过,但我做不到。这是我的代码:

for(i=0;i<4;i++)
{

for(j=0;j<10;j++)
{
if(i=0)
{
array[i][j]=
}

}
}

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

}

感谢您的帮助

最佳答案

人们注意到了一大堆问题。我注意到,在评论中(当我写完这篇文章时),一旦添加了正确的分配,您就说过“它有效”。上帝知道怎么做,但想必您问题中的代码并不代表您的实际代码......

对于后代,下面列出了问题。

1。声明

您需要在函数/主程序/程序的开头声明数组[][]

int array[10][4];

您还需要定义 i 和 j 并将它们设置为 0。大概您是在发布的代码之外执行所有这些操作。

请注意,我已经交换了您一直使用的“i”和“j”值。这是因为 [4][10] 会给你 4 个 10 个元素的数组,而不是 10 个 4 个元素的数组,这显然是你想要的。

2。循环遍历数组的顺序

您希望数字在穿过之前先下降。为了获得该模式,您需要比“j”更快地循环“i”值:

for(j=0;i<10;i++)
{
for(i=0;i<4;j++)
{
...
}
}

3.赋值

我不知道这个 if 语句的用途:

if(i=0)
{
...
}

这个ALWAYS不仅会返回false,它每次都会将 i 设置回 0,这样你就可以继续覆盖第一个元素,并且你的 for 循环永远不会结尾。我会考虑将其删除,因为它什么也没做。

正如@JohnBode指出的,i=0返回0(赋值操作总是返回被赋值的值),所以这个if语句等价于if(0),它总是为假。

分配相对简单:

array[i][j] = (i + 1) + (4*j)

请注意+1,因为数组索引将比所需值减一。我认为计算是正确的,老实说,它可能有点错误,这是您对这段代码最不用担心的!

打印功能很好。据我所知,这就是一切!

关于无法在C中创建数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34160311/

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