设为首页 加入收藏

TOP

计算机等级考试二级C语言程序设计专项训练题——数组元素的移动(二)
2023-07-23 13:32:25 】 浏览:538
Tags:计算机 程序设 计专项 元素的

    double  x[N];

    for(i=0; i<N; i++)

    {

        x[i]=rand()%50;

        printf("%4.0f ",x[i]);

    }

    printf("\n");

    printf("\nThe average is: %f\n",fun(x));

    printf("\nThe result :\n",fun(x));

    for(i=0; i<N; i++)  printf("%5.0f ",x[i]);

    printf("\n");

    return 0;

}

解析:现求出数组x中N个元素的平均值av,程序描述为

    s=0;

    for (i=0; i<N; i++)  s=s+x[i];

    av= s/N;

        之后对数组x的各元素x[i]进行扫描,将高于平均分的元素x[i]依次存储到辅助数组y中,其置x[i]=-1(因为规定数组x中所有元素值均为非负数),此时辅助数组中存储了数组x中大于平均值的数据;再对数组x扫描一遍,将元素值不等于-1的元素值(即数组x中不大于平均值的数据)依次增加到辅助数组y中,此时数组y中存储了原数组x中的所有元素,并且大于平均值的数据存储在数组y的前部,小于等于平均值的数据存储在数组y的后部。

        最后将数组y的各元素值对应存储(覆盖)到数组x中即可。

编写的函数fun如下:

double fun(double *x)

{

    int  i, j;   

    double  s, av, y[N];

    s=0;

    for (i=0; i<N; i++)  s=s+x[i];

    av= s/N;

    for(i=j=0; i<N; i++)

       if( x[i]>av )

       {

          y[j++]=x[i]; x[i]=-1;

       }

    for(i=0; i<N; i++)

        if( x[i]!= -1) y[j++]=x[i];

    for(i=0; i<N; i++)x[i] = y[i];

    return  av;

}

        例3  编写函数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。

#include <stdio.h>

#define  N  80

void fun(int *w,int p,int n)

{

}

int main()

{

    int  a[N]={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[i]);

    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[i]);

    printf("\n");

    return 0;

}

        解析:将数组w中的元素w[0]移动到数组的最后,操作描述为

1)暂存w[0]到辅助变量t中;

2)用一重循环将数组元素w[1]~w[n-1]一次前移一位;

3)将暂存的t保存到w[n-1]中。

将上述操作循环执行p+1次,则将下标从0到p(含p,p小于等于n-1)的数组元素平移到数组的最后。

编写的函数fun如下:

void fun(int *w,int p,int n)

{

    int i,j,t;

    for (i=0;i<=p;i++)

    {

        t=w[0];

        for (j=0;j<n-

首页 上一页 1 2 3 4 5 6 下一页 尾页 2/6/6
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇冷知识:预处理字符串操作符 下一篇计算机等级考试二级C语言程序设计..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目