C语言数组

目录

1. 数组概述

2. 数组应用

2.1  一维数组

2.1.1 数值数组

2.1.2 字符型数组

2.1.3 字符串数组

2.2 二维数组

3. 冒泡算法


1. 数组概述

        (1)数组是多个具有相同数据类型数值的有序的集合。

        (2)根据存储方式分为一维数组和二维数组

        根据存储内容分为数值型数组、字符型数组、字符串数组

2. 数组应用

2.1  一维数组

(1)概念

        一维数组就是通常所说的数组,是指数组中存储的元素只有唯一的下标,我们称这样的数组为一维数组。

(2)一维数组定义

        格式:数据类型  数组名【数组长度】

        例:int num【6】={1,2,3,4,5,6}

        数组长度定义:

        ①未初始化赋值:定义数组时没有给数组中的元素赋值,则根据【】中的值来定义数组的长度    int【5】

        ②以初始化赋值:定义数组时已给数组中的元素赋值,则根据数组中元素的个数来确定数组长度    int【】={1,2,3,4}

        数组名是数组首地址。buff----&buff【0】

        数组长度必须为一个正整数常量

2.1.1 数值数组

#include<stdio.h>

int main()
{
      int bu[3];
      int i,sum=0;

      for(i=0;i<3;i++)
      {
            printf("输入整数:");
            scanf("%d",&bu[i]);
      }

      for(i=0;i<3;i++)
      {
            printf("%d",bu[i]);
            sum+=bu[i];
      }
      printf("三数合为:%d",sum);
}

2.1.2 字符型数组

        用来存放字符数据的数组

        例:char a[5]={‘a’,‘b’,‘c’,‘d’,‘e’}

#include <stdio.h>

int main()
{
      char buff1[] = {'b',' '};
      char str[5]= {'a','v','x','1'};
      char buff2[15]; 

      printf("%d\n",sizeof(buff1)); //2
      printf("%d\n",sizeof(str));   //5
      printf("%d\n",sizeof(buff2)); //15
      printf("%c\n",str[4]);//'\0'----0
}

2.1.3 字符串数组

        字符串数组是由字符数组加上字符串结束符“\0”来组成的,一般使用“”来直接对数组进行赋值,字符串数组的长度为数组中字符的个数+1

        例:char a[]={“sssss”}   {}可加可不加

        a其中有效长度为5,实际长度为6,字符串数组结尾为\0

        字符串数组一定是字符数组,字符数组不一定是字符串数组

#include<stdio.h>

int main()
{
      char bu[6];
      int i;

      for(i=0;i<5;i++)
      {
            bu[i]=i+'0';
      }

      bu[5]=0;
      printf("%s",bu);  
}
//编写一个程序,将字符数组a中的全部字符复制到字符数组b中
#include<stdio.h>

int main()
{
      char a[10]={"sada123"};
      char b[5]={"123"};
      printf("%s\n",b);
      int i;

      for(i=0;i<5;i++)
      {
            b[i]=a[i];
      }

      b[i]='\0';
      printf("%s\n",b);
}
//输入两个字符串,进行拼接,然后输出
#include<stdio.h>

int main()
{
      char a[128],b[128];
      int i=0,wei=0;
      gets(a);
      gets(b);

      while(a[i]!='\0')
      {
            i++;
            wei++;
      }

      printf("a位数:%d\n",wei);
      i=0;

      while(b[i]!='\0')
      {
            a[wei+i]=b[i];
            i++;
      }

      a[wei+i]='\0';
      printf("%s",a);
}

2.2 二维数组

        又称为矩阵数组

        数组格式:数据类型 数组名[数组行长度][数组列长度] = {{元素1,元素2……元素n},{元素1,元素2……元素n}};

#include<stdio.h>

int main()
{
    int i,j;
    int a[3][3]={1,2,3,1,2,2,3};

    for(i=0;i<3;i++)
    {
          for(j=0;j<3;j++)
          {
                 printf("%d\t",a[i][j]);
          }
          printf("\n");
    }
}

3. 冒泡算法

        冒泡算法又称为冒泡排序法,是指将数组中的所有元素降序或升序排列的一种算法。

        循环无序数列中的元素,将相邻的元素一一比较,如果顺序排列错误,就交换两者位置。

#include<stdio.h>

int main()
{
       int str[]={1,2,65,32,54};
       int a,b,i;

       for(a=0;a<4;a++)
       {
              for(b=0;b<4-a;b++)
              {
                     if(str[b]>str[b+1])
                     {
                            i=str[b];
                            str[b]=str[b+1];
                            str[b+1]=i;
                     }            
              }
       }

       for(i=0;i<5;i++)
       {
           printf("%d\t",str[i]);
       }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值