C语言基础练习(2022-12-30)

1. 终端循环输入几个数赋值给二维整形数组arr,求最大值以及所在行列

#include <stdio.h>
int main()
{
    int arr[2][3] = {0};
    int num;
    int i,j;
    //循环输入数组数据
    printf("请输入数组对应的数据:\n");
    for (i = 0; i < 2; i++)
    {   
        for (j = 0; j < 3; j++)
        {
            printf("请输入第%d行第%d列数据:",i,j);
            scanf("%d",&arr[i][j]);
        }
    }   
    //输出刚才的数组
    printf("您刚才输入的二维数组为:\n");
    for (i = 0; i < 2; i++)
    {   
        for (j = 0; j < 3; j++)
        {
            printf("%d\t",arr[i][j]);
        }
        printf("\n");
    }   
    //求最大值以及所在的行列
    int max = 0;
    int row=0,column=0;
    for(i = 0; i < 2; i++)
    {   
        for (j = 0;j < 3; j++)
        {
            if (max <= arr[i][j])
            {
                max = arr[i][j];
                //此时的行列
                row = i;
                column = j;
            }                                                                                                
        }
    }   
    printf("最大值在%d行%d列\n",row+1,column+1);
    return 0;
}

2. 定义一个一维数组 int a[]= {1,2,3,4,5,6,7,8},

(1) 求一维数组的长度
(2) 并将所有奇数下标元素自乘3,偶数下标元素自增2.输出变化后的数组

#include <stdio.h>
int main(int argc, const char *argv[])
{
    int a[]= {1,2,3,4,5,6,7,8};
    //该数组的长度
    int len = sizeof(a) / sizeof(int);
    printf("该数组的长度为:%d\n",len);
    for (int i = 0; i < len; i++)
    {   
        if (i % 2 == 0)  //偶数                                       
        {   
            a[i] += 2;
        }   
        else
        {   
            a[i] *= 3;
        }   
    }   
    //变化后的数组
    for (int j = 0; j < len; j++)
    {   
        printf("%d\t",a[j]);
    }   
    return 0;
}

3. 一维整形整形数组逆置,例如: arr[5] ={1,2,3,4,5} 输出 {5,4,3,2,1}

#include <stdio.h>
int main(int argc, const char *argv[])
{
    int arr[5] = {1,2,3,4,5};
    int arr1[5];
    int temp = 0;
    for (int i = 0; i < 5; i++)
    {   
        arr1[i] = arr[5 - 1 - i]; 
    }   
    for (int j = 0; j < 5; j++)
    {   
        printf("%d\t",arr1[j]);
    }   
    return 0;
}         

4. 冒泡排序,int arr[8] = {88,22,33,66,11,66,101,2}

#include <stdio.h>
int main()
{
    int arr[8] = {88,22,33,66,11,66,101,2};
    int len = sizeof(arr)/sizeof(int);
    int i;
    int temp;
    for (int i = 0;i < len-1; i++)
    {   
        for (int j = 0; j < len - 1 - i; j++ )
        {   
            if (arr[j] > arr[j+1])
            {   
                //交换两个数据
                temp = arr[j];
                arr[j] = arr[j+1];
                arr[j+1] = temp;
            }   
        }   
    }   
    for (i = 0; i <= len-1; i++)
    {   
        printf("%d\t",arr[i]);
    }   
    printf("\n");                                                    
    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值