• 请编写函数fun(),该函数的功能是:移动一维数组中的内容,若数组中有n个整数,要求把下标从p到n-1(p≤n-1)的数组元素平移到数组的前面。
    例如,一维数组中的原始内容为1,2,3,4,5,6,7, 8,9,10,11,12,13,14,15,p的值为6。移动后,一维数组中的内容应为7,8,9,10, 11,12,13,14,15,1, 2, 3, 4, 5, 6。
    注意:部分源程序给出如下。
    请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
    试题程序:
    include<stdio.h>
    define N 80
    void fun(int *w,int p,int n)
    {
    }
    main()
    {
    int a={1,2,3,4,5,6,7,8,9,10,11, 12,13,14,15};
    int i,p,n=15;
    printf("The original data:\n");
    for(i=0;i<n;i++)
    printf("%3d",a);
    printf("\n\nEnter p:");
    scanf("%d",&p);
    fun(a,p,n);
    printf("\nThe data after moving:\n");
    for(i=0;i<n;i++)
    printf("%3d",a);
    printf("\n\n");
    }

    正确答案:void fun(int *w     int p     int n)     {         int     i.jt;                 for(i=p;i=n-1;i++)                                 /*循环右移n-p次*/         {t=w[n-11;             for(j=n-2;j>=0;j--)                         /*实现循环右移*/                 w[j+1]=w;             w=t;     }void fun(int *w,     int p,     int n)     {         int     i.j,t;    
  • 2021年07月13日 22时52分来自  问答库 >> 计算机类
  • 评论 0
  • 手机玩微博

    手机版 手机端
    Powered by 日新微博 © 2018 - 2020 日新网