gpt4 book ai didi

c - 想知道我将数组旋转 2 个位置时出错在哪里(大小=n=7,距离=d=2)

转载 作者:行者123 更新时间:2023-11-30 19:01:52 25 4
gpt4 key购买 nike

我试图编写一段代码来将数组旋转 2 的位置,我尝试了一些逻辑,但它根本没有旋转它。

我尝试编写一个函数并在那里编写我的逻辑

#include<stdio.h>
#include<stdlib.h>


void rotate_arr(int arr[],int d,int n){

int temp_new = arr[0,1];
int i,temp;
for(i=0;i<n;i++){
arr[0,1] = arr[d,d+1];
temp = arr[d+1];
}


int last;
for(last = 0;last<n;last++){
arr[last]++;
return;
}

arr[last] = temp_new ;
}



void main(){

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

int n = (sizeof(arr)/sizeof(arr[0]));

rotate_arr(arr,2,n);

for(int i=0;i<n;i++){
printf("%d-> ",arr[i]);
}
printf("NULL\n");
}

输入为{2,3,4,5,6,7}。
我期望 {4,5,6,7,2,3}。

最佳答案

这个

arr[0,1]

没有做你认为它会做的事情(检索两个元素)。
另外,在 C 中,一个变量只能存储一个值,而不能存储两个值。

您的代码仅访问一维数组中的一个元素,即第二个元素(位于索引 1 处)。它使用逗号运算符 , 的结果,在本例中为 1。

要存储两个值,请使用两个变量,从数组的位置 0 和 1 开始。

X=arr[0];
Y=arr[1];

关于c - 想知道我将数组旋转 2 个位置时出错在哪里(大小=n=7,距离=d=2),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57018739/

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