设为首页 加入收藏

TOP

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

     return 0;

}

double fun(double *x)
{
  int  i, j;
  double  av, y[N];
    av=0;
    for(i=0; i<N; i++)   av +=x[i];
    av/=N;
    for(i=j=0; i<N; i++)
        if( x[i]<av )
        {
            y[j]=x[i]; x[i]=-1; j++;
        }
    i=0;
    while(i<N)
    {
        if (x[i]!=-1) y[j++]=x[i];
        i++;
    }
    for (i=0; i<N; i++) x[i] = y[i];
    return  av;
}
参考程序

4.编写函数fun,它的功能是:把形参a所指数组中的最大值放在a[0]中,接着求出a所指数组中的最小值放在a[1]中;再把形参a所指数组中的次大值放在a[2]中,次小值放在a[3]中;其余以此类推。

例如,若a所指数组中数据最初排列为:1、4、2、3、9、6、5、8、7,则按规则移动后,数据排列为:9、1、8、2、7、3、6、4、5。

#include <stdio.h>

#define N  9

void fun(int  a[], int  n)

{

}

int main()

{

    int  b[N]={1,4,2,3,9,6,5,8,7}, i;

    printf("\nThe original data  :\n");

    for (i=0; i<N; i++)  printf("%4d ", b[i]);

    printf("\n");

    fun(b, N);

    printf("\nThe data after moving  :\n");

    for (i=0; i<N; i++)  printf("%4d ", b[i]);

    printf("\n");

    return 0;

}

void fun(int  a[], int  n)
{
    int  i, j, max, min, px, pn, t;
    for (i=0; i<n-1; i+=2)
    {
        max = min = a[i];
        px = pn = i;
        for (j=i+1; j<n; j++)
        {
            if (max < a[j])
            {  max = a[j]; px = j;  }
            if (min > a[j])
            {  min = a[j]; pn = j;  }
        }
        if (px != i)
        {
            t = a[i]; a[i] = max; a[px] = t;
            if (pn == i) pn= px;
        }
        if (pn != i+1)
        {   t = a[i+1]; a[i+1] = min; a[pn] = t; }
    }
}
参考程序

5.编写函数fun,它的功能是:将N*N矩阵中元素的值按列右移一个位置,右边被移出矩阵的元素绕回左边。

例如,N=4,有下列矩阵

21 12 13 24

25 16 47 38

29 11 32 54

42 21 33 10

移动后结果为

24 21 12 13

38 25 16 47

54 29 11 32

10 42 21 33

#include  <stdio.h>

#define  N  4

void fun(int (*t)[N])

{

}

int main()

    int  t[][N]={21,12,13,24,25,16,47,38,29,11,32,54,42,21,33,10}, i, j;

    printf("The original array:\n");

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

    { 

        for(j=0;j<N;j++) printf("%2d  ",t[i][j]);

        printf("\n");

    }

    fun(t);

    printf("\nThe result is:\n");

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

    { 

        for(j=0;j<N;j++) printf("%2d  ",t[i][j]);

        printf("\n");

    }

    return 0;

}

void fun(int (*t)[N])
{  
    int  i, j, x;
    for(i=0; i< N; i++)
    {
        x=t[i][ N-1] ;
        for(j=N-1; j>0; j--)
           t[i][j]=t[i][j-1];
        t[i][0]=x;
    }
}
参考程序

6.编写函数fun,它的功能是:将a所指3*5矩阵中第k列的元素左移到第0列,第k列以后的每列元素依次左移,原来左边的各列依次绕到右边。

例如,有下列矩阵

1 2 3 4 5

1 2 3 4 5

1 2 3 4 5

若k为2,程序执行结果为

3 4 5 1 2

3 4 5 1 2

3 4 5 1 2

#include  <stdio.h>

#define   M   3

#define   N   5

void fun(int  (*a)[N],int  k)

{

}

int main( )

{

    int  x[M][N]={{1,2,3,4,5},{1,2,3,4,5},{1,2,3,4,5}},i,j;

    printf("The array before moving:\n\n");

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

    { 

        for(j=0; j&

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

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目