用数组做散列计算

数据可以存放在变量里,每一个变量有一个名字,有一个类型,还有他的生存空间。如果我们需要保存一些相同类型、相同含义、相同生存空间的数据,我们可以用数组来保存这些数据,而不是用很多独立的变量。数组是长度固定的数据结构,用来存放指定的类型的数据。一个数组里可以有很多个数据,所有的数据类型都是相同的。

定义数组

  • <类型>变量名称【元素数量】
  • int grades【100】
  • doubie weight【20】
  • 元素数量是整数
  • C99之前:元素数量必须是编译时刻确定的字面量

数组

  • 是一种容器(放东西的东西),特点是:
  • 其中所有的元素具有相同的数据类型;
  • 一旦创建,不能改变大小
  • *(数据中的元素在内存中是连续依次排列的)

int a[10]

  • 一个int的数组
  • 10个单元:a[0],a[1],...a[9]
  • 每个单元就是一个int类型的变量
  • 可以出现在赋值的左边或右边:
  • a[2]=a[1]+6;
  • *在赋值左边的叫做左值

数组的单元

  • 数组的每个单元就是数据类型的一个变量
  • 使用数组时放在[ ]中的数字叫做下标或引索,下标从0开始计数:
  • grades[0]
  • grades[99]
  • average[5]

有效的下标范围

  • 编译器和运行环境都不会检查数组下标是否越界,无论是对数组单元做读还是写
  • 一旦程序运行,越界的数组访问可能造成问题,导致程序崩溃

    用数组做散列计算

  • 写一个程序,输入数量不确定的[0,9]范围内的整数,统计每一种数字出现的次数,输入-1表示结束
#include <stdio.h>

int main()

{
    int x;
    int count[10];
    int i;

    for ( i=0; i<10; i++ ) {
        count[i] = 0;
    }

    scanf("%d", &x);
    while ( x!=-1 ) {
        if ( x>=0 && x<=9 ) {
             count[x] ++;
        }
        scanf("%d", &x);
    }
    for ( i=0; i<10; i++ ) {
        printf("%d;%d\n",i, count[i]);
    }
    return 0;
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值