zoukankan      html  css  js  c++  java
  • C 实战练习题目68

    题目:有 n个整数,使其前面各数顺序向后移 m 个位置,最后m个数变成最前面的 m 个数。

    程序分析:无。

    实例:

     1 #include <stdio.h>
     2 #include <stdlib.h>
     3 int main()
     4 {
     5     int arr[20];
     6     int i,n,offset;
     7     //输入数组大小和数组内容
     8     printf("Total numbers?
    ");
     9     scanf("%d",&n);
    10     printf("Input %d numbers.
    ",n);
    11     for(i=0;i<n;i++)
    12         scanf("%d",&arr[i]);
    13     //输入滚动偏移量
    14     printf("Set your offset.
    ");
    15     scanf("%d",&offset);
    16     printf("Offset is %d.
    ",offset);
    17     //打印滚动前数组
    18     print_arr(arr,n);
    19     //滚动数组并打印
    20     move(arr,n,offset);
    21     print_arr(arr,n);
    22 }
    23  
    24 //打印数组
    25 void print_arr(int array[],int n)
    26 {
    27     int i;
    28     for(i=0;i<n;++i)
    29         printf("%4d",array[i]);
    30     printf("
    ");
    31 }
    32 //滚动数组
    33 void move(int array[],int n,int offset)
    34 {
    35     int *p,*arr_end;
    36     arr_end=array+n;      //数组最后一个元素的下一个位置
    37     int last;
    38     
    39     //滚动直到偏移量为0
    40     while(offset)
    41     {
    42         last=*(arr_end-1);
    43         for(p=arr_end-1;p!=array;--p)   //向右滚动一位
    44             *p=*(p-1);
    45         *array=last;
    46         --offset;
    47     }
    48 }

    感谢你的阅读,请用心感悟!希望可以帮到爱学习的你!!分享也是一种快乐!!!请接力。。。

    点击查看原文,谢谢!

  • 相关阅读:
    硬件_WIFI&Blue
    C++_练习—多态_纯虚函数与抽象类
    C++_练习—多态_验证vptr分布初始化
    C++_练习—多态_证明vptr指针的存在
    单摆方程
    谐振动相关知识
    UVa 129
    LeetCode-316
    Java 运算符
    一些特殊的矩阵
  • 原文地址:https://www.cnblogs.com/kangyifan/p/13283609.html
Copyright © 2011-2022 走看看