3道C语言编程问题求解答

定义二维数组int[3][4],从键盘输入整数给数组array赋值,并求数组array中的最大值和最小值编程实现对一堆数组进行冒泡排序的函数,并在main函数中验证程序的... 定义二维数组int[3][4],从键盘输入整数给数组array赋值,并求数组array中的最大值和最小值
编程实现对一堆数组进行冒泡排序的函数,并在main函数中验证程序的正确性
编程实现对一堆数组进行选择排序的函数,并在main函数中验证程序的正确性
展开
 我来答
上帝模式x
2013-12-11 · TA获得超过196个赞
知道答主
回答量:45
采纳率:0%
帮助的人:55.6万
展开全部

#include <stdio.h>

#include <string.h>

#include <stdlib.h>


void bubble_sort(int *x, int n)

{

    if(x==NULL || n<=0)return;

    int i,t,r,k;

    for(r=n-1;r>0;r=k)//r为循环范围

    {

        k=0;//k=0保证排好序后循环能退出

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

        {

            if(*(x+i) > *(x+i+1))

            {

                t = *(x+i);

                *(x+i) = *(x+i+1);

                *(x+i+1) = t;

                k = i;

            }

        }

    }

}


void select_sort(int *x, int n)

{

    if(x==NULL || n<=0)return;

    int min_index,i,j,t;

    for(i=0;i<n-1;i++)

    {

        min_index = i;

        for(j=i+1;j<n;j++)

        {

            if(*(x+j) < *(x+min_index))

            min_index = j;

        }

        if(min_index != i)

        {

            t = *(x+i);

            *(x+i) = *(x+min_index);

            *(x+min_index) = t;

        }

    }

}


int main()

{

    int a,k,i=0,j=0;

    int m,n;

    int array[3][4];


    for(k=1;k<=12;k++)

    {

        scanf("%d", &a);

        m = (k%4==0)?(i++):i;

        n = (k%4==1)?(j=0):(++j);

        array[m][n] = a;

    }


    int min = array[0][0];

    int max = array[0][0];

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

    {

        for(j=0;j<4;j++)

        {

            printf("%2d ",array[i][j]);

            if(array[i][j] > max)

            max = array[i][j];

            if(array[i][j] < min)

                min = array[i][j];

        }

        printf("\r\n");

    }

    printf("max : %2d, min : %2d\r\n",max,min);


    int array_t[10]={16,7,1,81,43,17,9,10,24,8};

    bubble_sort(array_t, 10);

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

        printf("%2d,",array_t[i]);

    printf("\r\n");


    int array_t1[10]={16,7,1,81,43,17,9,10,24,8};

    select_sort(array_t1, 10);

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

        printf("%2d,",array_t1[i]);

    printf("\r\n");

}


追问
这是第几题的
追答
三道题全在;
main()函数中printf("max : %2d, min : %2d\r\n",max,min);之前是第一道题,求最最大值和最小值
bubble_sort()第二道,冒泡排序
select_sort() 第三道,选择排序
匿名用户
2013-12-11
展开全部
我大通达的吗···
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式