c语言一维数组逆序输出_C语言经典100例009-移动一维数组的内容

63d13c3c5f396f568ad1bb5da40440f9.png

系列文章《C语言经典100例》持续创作中,欢迎大家的关注和支持。

喜欢的同学记得点赞、转发、收藏哦~

后续C语言经典100例将会以pdf和代码的形式发放到公众号

欢迎关注:计算广告生态 即时查收

1 题目

函数:fun() 功能:移动一维数组的内容 描述:若数组中有n个整数,要求把下标从0到p(含p,p<=n-1)的元素平移到数组的最后 举例: 一维数组:1,2,3,4,5,6,7,8,9,10,p的值为3 移动后:5,6,7,8,9,10,1,2,3,4

94589dc81cf15cc64afc0681fe1f6979.png

C语言100题集合-ex009

2 思路

循环 p 次:

将下标为0的数字进行临时存放,然后将后面的数字平移到前面,最后将临时存放的数字放到最后一位

3 代码

#include <stdio.h> 
#include <stdlib.h>
#define N 10

/**
函数:fun()
功能:移动一维数组的内容
描述:若数组中有n个整数,要求把下标从0到p(含p,p<=n-1)的元素平移到数组的最后
举例:
一维数组:1,2,3,4,5,6,7,8,9,10,p的值为3
移动后:5,6,7,8,9,10,1,2,3,4
**/


void fun(int *a, int p) {
 int temp;
 for (int i = 0; i <= p; ++i) {
  temp = a[0]; // 临时存放第一个数字
  for (int j = 1; j < N; ++j) {  // 循环将后续数字进行平移
   a[j-1] = a[j];
  }
  a[N-1] = temp; // 临时数字存放到最后一位
 }
}


int main(int argc, char const *argv[]) { 
 int a[10] = {1,2,3,4,5,6,7,8,9,10};
 int p = 3;

 printf("原始数组内容:n");
 for (int i = 0; i < N; ++i) {
  printf("%d ", a[i]);
 }
 printf("n");
  
 fun(a, p);
 printf("平移后数组内容:n");
 for (int i = 0; i < N; ++i) {
  printf("%d ", a[i]);
 }
 printf("n");
}

示例结果:

$ gcc ex009.c -o demo
$ ./demo
原始数组内容:
1 2 3 4 5 6 7 8 9 10
平移后数组内容:
5 6 7 8 9 10 1 2 3 4

--END--

喜欢本文的同学记得点赞、转发、收藏~

更多内容,欢迎大家关注我们的公众号:计算广告生态

后续C语言经典100例将会以pdf和代码的形式发放到公众号

同时也带来更多系列文章以及干货!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值