数组的定义和初始化

本文探讨了在C语言中使用数组的原因,如处理大量数据的平均分计算。详细介绍了数组的定义,包括一维数组的内存占用计算,并讨论了如何使用memset函数填充数组。还涉及了如何访问和复制数组元素,以及二维数组的定义和初始化。最后,提出了编程挑战,要求实现显示用户输入月份的天数(考虑闰年)。
摘要由CSDN通过智能技术生成

问题:为什么要使用数组?

      如果我们读入两个学生的成绩并求其平均分, 那么只需要两个变量就可以轻松解决该问题. 那么如果读入100个学生的成绩并求其平均分, 那就需要定义100个变量并且要输入100次数据, 之后才能求解其平均成绩. 可能有人会说, 定义一个变量, 用100次循环将100个学生的成绩累加至求和变量中也可以求解平均成绩, 可如果日后要用这100个数据进行排序操作或求解100个数据中的最值, 我们就没有办法实现了.


[程序实现]

#include<stdio.h>
/* 数组a[]中存储了num个学生的成绩数据 */
double Average(short a[], unsigned short num)
{
    unsigned short i = 0;
    unsigned long S = 0;
    while(i < num)
    {
        S += a[i];
        i ++;
    }
    return (double)S / num;
}
/* */
int main()
{
    /* 学生数量 */
    short n;
    printf("请输入学生的数量: ");
    /* 增加输入容错机制 */
    while(scanf("%hd", &n) != 1 || n < 1)
    {
        printf("请正确输入数据.\n");
        while(getchar() != '\n') ;
        printf("请输入学生的数量: ");
    }
    /* */
    unsigned short i = 0;
    short student[n];
    while(i < n)
    {
        printf("第%hu个学生的成绩: ", i + 1);
        while(scanf("%hd", student + i) != 1)
        {
            printf("请输入合法数据.\n");
            printf("第%hu个学生的成绩: ", i + 1);
            while(getchar() != '\n') ;
        }
        if(student[i] >= 0 && student[i] <= 150)
        {
            i ++;
        }
        else
        {
            printf("学生成绩应为0~150, 请重新输入.\n");
        }
    }
    /* */
    printf("%hd个学生的平均成绩为%.4lf.\n", n, Average(student, n));
    /* */
    return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

好梦成真Kevin

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值