数组运算

数组运算
1.写一个程序,输入数量不确定的[0,9]范围内的整数,统计每一种数字出现的次数,输入-1表示结束

int main()
{
    const int number=10;//数组的大小
    int x;
    int count[number];//count[0]代表0这个数字出现多少次,count[9]代表9这个数字出现多少次   定义数组
    int i;
    for(i=0;i<number;i++){//初始化数组
        count[i]=0;
    }
    scanf("%d",&x);
    while(x!=-1){
            if(x>=0&&x<=9){
                count[x]++;//数组参与运算
            }
        scanf("%d",&x);
    }
    for(i=0;i<number;i++){//遍历数组  做输出
        printf("%d出现了%d次\n",i,count[i]);
    }

    return 0;
}

2.在一组给定的数据中,如何找出某个数据是否存在

找出key在数组a中的位置
key:要寻找的数字
a:要寻找的数组
length:数组a的长度

3.int a[]={2,4,6,7,1,3,5,9,11,13,23,14,32};
数组的集成初始化
直接用大括号给出数组的所有元素的初始值
不需要给出数组的大小,编译器替你数数
集成初始化时的定位C99 ONLY!
int a[10]={[0]=2,[2]=3,6};
用[n]在初始化数据中给出定位
没有定位的数据接在前面的位置后面
其他位置的值补零
也可以不给出数组大小,让编译器算
特别适合初始数据稀疏的数组
4.数组的大小
sizeof给出整个数组所占据的内容的大小,单位是字节
sizeof(a)/sizeof(a[0])
sizeof(a[0])给出数组中单个元素的大小,于是相除就得到了数组的单元个数
这样的代码,一旦修改数组中初始的数据,不需要修改遍历的代码
5.数组的赋值
int a[]={2,4,6,7,1,3,5,9,11,13,23,14,32};
int b[]=a;数组不能做这样的赋值,不能直接拿一个数组变量赋给另外一个数组变量
数组变量本身不能被赋值
要把一个数组的所有元素交给另一个数组,必须采用遍历
for(i=0;i<length;i++){
b[i]=a[i];
}

int search(int key,int a[],int length);
int main(void)
{
    int a[]={2,4,6,7,1,3,5,9,11,13,23,14,32};
    int x;
    int loc;//在a中的位置,从0开始
    printf("请输入一个数字:");
    scanf("%d",&x);
    loc=search(x,a,sizeof(a)/sizeof(a[0]));//调用search函数,search函数会返回给我们一个loc
    if(loc!=-1){
        printf("%d在第%d个位置上\n",x,loc);
    }else{
        printf("%d不存在\n",x);
    }

    return 0;
}
int search(int key,int a[],int length)//数组作为参数时,往往必须再用另一个参数传入数组的大小
//因为:数组作为函数的参数时:不能在[]中给出数组的大小,不能再用sizeof来计算数组的元素个数
{
    int ret=-1;
    int i;
    for(i=0;i<length;i++){//遍历数组a
        if(a[i]==key){//遍历的每一次,拿出数组a中的一个单元,来判断是否和key的值相等
            ret=i;//若相等,令ret=i,之后break
            break;
        }
    }
    return ret;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值