Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 移动数组的元素_C - Fatal编程技术网

C 移动数组的元素

C 移动数组的元素,c,C,我试图制作一个程序,将数组的元素从右向左移动,然后打印它们,但程序打印的唯一内容是最后一个值:为什么 int main(){ int n=5; 整数数组[n]; int i=0; 内部温度=0; 而(i0){ 我--; 数组[i]=数组[i+1]; } i=0; 而(i

我试图制作一个程序,将数组的元素从右向左移动,然后打印它们,但程序打印的唯一内容是最后一个值:为什么

int main(){
int n=5;
整数数组[n];
int i=0;
内部温度=0;
而(i0){
我--;
数组[i]=数组[i+1];
}
i=0;
而(i
输入和预期输出示例:

输入:1,2,3,4,5
产量:2,3,4,5,1
在循环中

i = n-1;
while (i > 0) {
    i--;
    array[i] = array[i+1];
}
最后一个元素的值被写入最后一个元素的第二个元素,然后第二个元素的值(现在是最后一个元素的值)被写入最后一个元素的第三个元素。其他元素也将获得最后一个元素的值,如下所示

过程顺序应颠倒如下:

i = 0;
while (i+1 < n) {
    array[i] = array[i+1];
    i++;
}
i=0;
而(i+1
逐步浏览您的代码。从最后一个元素开始,然后将其复制到最后一个元素的第二个元素。假设元素是{1,2,3,4,5}。这意味着进入循环之前的数组[3]是4,但在第一次迭代之后是5(
array[i](4)]
=
array[i+1(5)](5)
)。然后向下移动到数组[2],并将其设置为数组[3],现在是5。对整个数组重复此操作,直到所有元素都包含5(最后一个值)。顺便问一下,您甚至没有使用
temp
,您是否打算对它做些什么,然后忘记它?

您必须在temp变量中保留数组的第一个元素(数组[0]),然后将数组元素从0移到n-2,然后必须在最后一个元素数组[n-1]的索引处插入第一个元素(数组[0])

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

int main (){
int n = 5;
int array[n];
int i = 0;
while (i < n) {
    printf("Insert the value :");
    scanf("%d", &array[i]);
    i++;
}
int temp = array[0];
i = 0;
while (i < n-1) {
array[i] = array[i+1];
i++;
}
array[n-1]=temp;
printf("\n\n");
i = 0;
while (i < n) {
    printf("%d\n", array[i]);
    i++;
}
return 0;
}
#包括
#包括
int main(){
int n=5;
整数数组[n];
int i=0;
而(i
如果要向左移动元素,必须首先将i放入临时变量中,因为此变量的值必须保持不变才能移动到前面的元素

   i = n-1;
    while (i >1) {
        temp = array[i-1];
        array[i-2] = temp;         
        array[i-1] = array[i];
        i--;
    }

你到底提供了什么作为输入,你期望什么作为输出,你得到什么?我会编辑这个问题谢谢你,但是如果我想让用户输入的第一个值变成最后一个值,我该怎么做?@Sub0Zero1990 Add
array[n-1]=temp在循环之后。