gpt4 book ai didi

C数组在一定范围内反转

转载 作者:行者123 更新时间:2023-11-30 16:49:12 25 4
gpt4 key购买 nike

我编写了一个c代码。

array = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10}

范围可以是(0, 3)(2, 6)等。

但是我的代码有问题,它在某些范围内工作,但在某些范围内工作得不好。我不知道原因。

这是我的代码。

#include <stdio.h>
void reverse(int arr[], int s, int t)
{
int i,j, temp;

for (i=s, j=0; i<(t-s)/2 + 1; i++, j++)
{
temp = arr[i];
arr[i] = arr[t-j];
arr[t-j] = temp;
}

for(i = 0; i < 8; i++)
printf("%d ", arr[i]);
printf("\n");
}
int main()
{
int i, s, t;

printf("start = ");
scanf("%d", &s);
printf("end = ");
scanf("%d", &t);

int arr[] = {1, 2, 3, 4, 5, 6, 7, 8};

reverse(arr, s, t);

return 0;
}

这是正确的结果。

enter image description here

这是错误的结果。

enter image description here

enter image description here

最佳答案

#include <stdio.h>
void reverse(int arr[], int s, int t)
{
int i, j, temp;
for (i = s, j = 0; i <= (t-s)/2 + s; i++, j++) {
temp = arr[i];
arr[i] = arr[t-j];
arr[t-j] = temp;
}

for(i = 0; i < 8; i++) {
printf("%d ", arr[i]);
}
printf("\n");
}
int main()
{
int i, s, t;
printf("start = ");
scanf("%d", &s);
printf("end = ");
scanf("%d", &t);
int arr[] = {1, 2, 3, 4, 5, 6, 7, 8};
reverse(arr, s, t);
return 0;
}

关于C数组在一定范围内反转,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42696422/

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