用C语言编程:将整形数组中的所有元素前移一个位置,0号元素移到最后

2025-02-02 03:00:00
推荐回答(4个)
回答1:

用for循环逐步移动即可。

#include 

// 所有元素前移一个位置,0号元素移到最后
void loopMove(int *dat, int len)
{
    int tem = dat[0];
    for (int i = 0; i < len-1; i++)
        dat[i] = dat[i+1];
    dat[len-1] = tem;
}

void output(int *dat, int len)
{
    for (int i = 0; i < len; i++)
        printf("%d ", dat[i]);
    printf("\n");
}

int main()
{
    int a[10]= {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}, len = 10;
    printf("原始数据:");
    output(a, len);
    loopMove(a, len);
    printf("第一次:");
    output(a, len);
    loopMove(a, len);
    printf("第二次:");
    output(a, len);
    return 0;
}

回答2:

保存0下标 这个元素 , 然后依次实现移位, 最后将保存元素 赋值给数组末

回答3:

#include
#include
int main()
{
char str[6];
int i,j,count;
char value1;
printf("请输入一串字符串:\n");
scanf("%s",str);
value1=str[0];
for(i=1;i<6;i++)
str[i]=str[i+1];
str[6]=value1;

printf("str:%s\n",str);

}

回答4:

# include

int main(void)
{
long i[8] = {1, 2, 3, 4, 5, 6, 7, 8};
long j, k;

k = i[0];
for (j=0; j<7; j++)
{
i[j] = i[j+1];
}
i[7] = k;

for (j=0; j<8; j++)
printf("%-5d", i[j]);
putchar('\n');

return 0;
}