C语言——二维数组 & 冒泡排序

  1. 求二维数组中元素的第二大值,及行标列标
    #include<stdio.h>
    int main(int argc, const char *argv[])
    {
        int arr[3][3]={1,2,3,4,5,6,7,8,9};
        int i,j;
        int max1=arr[0][0],max_h=0,max_l=0;
        int max2=arr[0][0],max_h1=0,max_l1=0;
        for(i=0;i<3;i++)//外循环
        {
            for(j=0;j<3;j++)//内循环
            {
                if(arr[i][j]>max2)//二者判断寻找最大值
                {
                    if(arr[i][j>max1])
                            {
                    max2=max1;
                    max_h1=max_h;
                    max_l1=max_l;
                    max1=arr[i][j];
                    max_h=i;
                    max_l=j;
                    
    
                    }    
                }
             if(max1>=arr[i][j]&&max2<arr[i][j])
                {
                    max_h1=i;
                    max_l1=j;
                }
            
    
            }
        }
                printf("第二大的值为%d,行为%d,列为%d\n",max2,max_h1,max_l1);
                printf("第一大的值为%d,行为%d,列为%d\n",max1,max_h,max_l);
    
        return 0;


#include<stdio.h>
int main(int argc, const char *argv[])
{
    int arr[3][3]={{34,97,6},{90,81,7},{13,5,79}};
    int arr1[9]={0};
        int i,j,temp;
    for(i=0;i<3;i++)//将二维数组转换成一维
    {
        for(j=0;j<3;j++)
        {
            arr1[3*i+j]=arr[i][j];
        }
    }
    for(i=0;i<7;i++)
    {
        for(j=0;j<8;j++)
        {
            if(arr1[j]>arr1[j+1])
            {
                temp=arr1[j];
                arr1[j]=arr1[j+1];
                arr1[j+1]=temp;
            }
           }
    }
for(i=0;i<3;i++)
{
    for(j=0;j<3;j++)
    {
        arr[i][j]=arr1[3*i+j];
        printf("%-3d",arr[i][j]);
    }
putchar(10);
}

    return 0;
}


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值