gpt4 book ai didi

不能交换数组 [2][2] 中的行。似乎它做了一些超出数组的事情

转载 作者:太空宇宙 更新时间:2023-11-04 01:35:14 26 4
gpt4 key购买 nike

不能交换数组[2][2] 中的行。似乎它做了一些超出数组的事情。 (我怀疑这段代码疯了(mad)

1) 我打印它。 2) 尝试交换(认为问题就快出现了)。 3) 我再打印一遍。 (但是现在元素的值跟以前不一样了)

#include <stdio.h>#
#include <stdlib.h>
#include <time.h>
#define RANGE 99

int main()
{
int l1,l2;
int i,j;
int arr[2][2]; // There should be arr[3][3]. FOR MORE
int temp_line[2]; // DETAILS SEE THE ACCEPTED ANSWER.

srand((unsigned)time(NULL));

/* Filling in */
for (i = 0; i <= 2; i++)
{
for (j = 0; j <= 2; j++)
arr[i][j] = 1 + rand()%RANGE;
printf("\n");
}

/* Displaying */
for (i = 0; i <= 2; i++)
{
for (j = 0; j <= 2; j++)
printf("%2.d ", arr[i][j]);
printf("\n");
}


printf("\nEnter the No. of lines to swap them.\n"); // Remember about the 0th element.
scanf("%d%d", &l1, &l2); // The 1-st and the 2-nd lines.


/** Swapping lines. PROBLEM! */
for (j = 0; j <= 2; j++)
temp_line[j] = arr[l1][j]; // Remember the 1-st required line.

for (j = 0; j <= 2; j++)
arr[l1][j] = arr[l2][j]; // Copying each element of the 2-nd required line 1-st one.

for (j = 0; j <= 2; j++)
arr[l2][j] = temp_line[j]; // Copying "Remembered" 1-st required line.


/* Displaying */
for (i = 0; i <= 2; i++)
{
for (j = 0; j <= 2; j++)
printf("%2.d ", arr[i][j]);
printf("\n");
}

return 0;
}

最佳答案

您的 3x3 数组应声明为:

int arr[3][3];  // Array 3x3

当声明一个数组时,数字表示要分配多少“槽”。由于您需要 3x3 数组,因此需要指定 3

访问数组时指定索引。索引从 0 开始,因此如果您想访问第一个元素,您可以使用 0

计数和索引是两个不同的东西。

关于不能交换数组 [2][2] 中的行。似乎它做了一些超出数组的事情,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15593591/

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