DAY8(7.8)

数组的定义

#include<myhead.h>

int main(int argc, const char *argv[])
{
    //定义一个长度为5的整形数组
    int arr[5];     //数组元素分别是:arr[0]--arr[4]
    //定义一个长度为10的字符数组
    char brr[10];
    //定义一个长度为100的数组,存储小数
    double crr[100];

    printf("arr[0] = %d, brr[0] = %c, crr[0] = %lf\n", \
            arr[0], brr[0], crr[0]);
    

    return 0;
}

数组的初始化

#include<myhead.h>

int main(int argc, const char *argv[])
{
    //定义一个长度为5的整形数组
    int arr[5];     //数组元素分别是:arr[0]--arr[4]
    //定义一个长度为10的字符数组
    char brr[10];
    //定义一个长度为100的数组,存储小数
    double crr[100];
    //如果对于数组,没有进行初始化的话,里面的元素值全部都是
    //随机值
    printf("arr[0] = %d, brr[0] = %c, crr[0] = %lf\n", \
            arr[0], brr[0], crr[0]);

    //定义数组并初始化
    int drr[5] = {1,2,3,7,6};         //全部初始化
    int err[5] = {520, 1314, 666};      //部分初始化
    int frr[] = {1,3,5,7,9};            //特殊初始化
    printf("sizeof(frr) = %ld\n", sizeof(frr));   //20
    printf("len of frr = %ld\n", sizeof(frr)/sizeof(frr[0]));

    

    return 0;
}

数组操作

#include<myhead.h>
#define MAX 10            //宏定义一个常量

int main(int argc, const char *argv[])
{
    //定义一个数组,用于存储班级所有成员的成绩
    int score[MAX] = {0};     

    //完成对成员成绩的输入
    for(int i=0; i<MAX; i++)
    {
        //找到任意一个元素:score[i]
        printf("请输入第%d个学生的成绩:", i+1);
        scanf("%d", &score[i]);
    }

    //程序执行至此,表示数组元素全部赋值成功
    //输出数组元素
    printf("数组中的元素分别是:");
    for(int i=0; i<MAX; i++)
    {
        printf("%d\t", score[i]);
    }
    putchar(10);              //输出一个回车换行

    //求和值、均值
    int sum = 0;         //记录总和
    double avg = 0;      //记录平均值
    for(int i=0; i<MAX; i++)          //遍历数组中的所有元素
    {
        sum += score[i];         //讲任意一个数据进行累加
    }
    //程序执行至此,表示总和已经求出来
    avg = 1.0*sum/MAX;
    printf("总和为:%d, 平均值为:%.2lf\n", sum, avg);

    //求最值(以求最大值为例)
    int max = 0;             //存储数组的中最大值
    int maxi = 0;            //记录最大值所在的下标

    //先将数组中的第一个当做最值
    max = score[0];
    maxi = 0;                //记录当前最值所在的下标
    for(int i=0; i<MAX; i++)
    {
        //将当前的最值,与任意一个数据进行比较
        if(max < score[i])
        {
            max = score[i];           //更新最值中的数据
            maxi = i;                 //更新记录最值下标的变量
        }
    }
    //程序执行至此,表示最值以及最值的下标已经求出
    printf("当前数组的最大值为:%d, 在数组的第%d个位置\n", max, maxi+1);
    

    //查找
    int search = 0;
    int i = 0;            //用于遍历数组的循环变量
    printf("请输入您要查找的值:");
    scanf("%d", &search);
    //开始遍历数组,实现存在性查找
    for(i=0; i<MAX; i++)
    {
        //判断数据是否是要查找的数据
        if(search == score[i])
        {
            break;
        }
    }
    //判断是否查找到
    if(i==MAX)
    {
        printf("查找失败\n");
    }else
    {
        printf("您要查找的值,存在于数组中\n");
    }

    //遍历数组,完成统计性查找
    int count = 0;              //计数器
    for(int i=0; i<MAX; i++)
    {
        if(search == score[i])
        {
            count++;           //计数器自增
        }
    }
    //循环结束后,对计数器进行判断
    if(count == 0)
    {
        printf("查找失败\n");
    }else
    {
        printf("查找成功,您要找的值一共出现%d次\n", count);
    }
    






    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值