目录
1、数组的引入
数组:相同数据类型数据的集合。在内存中是连续排列的。
批量处理数据时使用。
2、数组的使用
2.1数组的定义
类型说明符 数组名[数字常量];
int num[5];//定义了一个存储5个整形数据的数组。
类型说明符:说明数组内存储元素的类型。
数组名:标识符,命名形象化。
数字常量:代表数组的大小。
2.2数组的初始化
初始化:定义的同时给定一个初始值。
数组用大括号进行初始化。
int num[5] = {1,2,3,4,5};
int num[] = {1,2,3,4,5};//数组的大小确定的时候可以省略。
2.3数组元素的访问
数组名[角标]
角标从0开始。注意不能够越界。
int num[5]={1,2,3,4,5};
访问第一个元素:num[0]
访问最后一个元素:num[4]
3、字符数组
3.1常用字符数组
用来存放字符的数组称为字符数组。
char str[5]={‘a’,’b’,’c’,’d’,’e’};
3.2特殊字符数组
用字符串来初始化一个数组。
char str[]={“abcde”};
char str[]= “abcde”;
以上两种形式效果一样。注意字符串以’\0’结尾,
数组的大小是字符串字符长度+1,因为有‘\0’。
Char str[20]={“1,2,3,4”}//数组大小为20,字符长度为4;
Char str[]={“1,2,3,4”}//数组大小为5,字符长度为4。
求字符串长度函数:strlen
字符输入输出函数:getchar putchar
字符串输入输出函数:gets puts
4、二维数组
数组的数组,数组里面的元素还是一个数组。
int num[2][3]={{1,2,3},{4,5,6}};//num[1][0] == 4
int num[2][3]={1,2,3,4,5,6};
int num[2][3]={{1,2,3},
{4,5,6}};
以上两种初始化效果一样。数组的第一个2代表数组里面有2个数组,第二个3代表每个数组里面有三个整形元素。
为了直观好看,我们通常规定二维数组的第一个数为行,第二个数为列。
5、数组排序
冒泡排序:
#include <stdio.h>
#include <string.h>
int main()
{
int num[5]={5,4,3,2,1};
int i,j,a;
for(j=0;j<4;j++)
{
for(i=0;i<4;i++)
{
if(num[i]>num[i+1])
{
a=num[i];
num[i]=num[i+1];
num[i+1]=a;
}
}
}
for(i=0;i<5;i++)
printf("%-5d",num[i]);
return 0;
}
6、案例分析
输入一个十进制数,以二进制格式输出。
#include <stdio.h>
#include <string.h>
int main()
{
int num[20];
int a,i=0,j;
while(1)
{
i=0;
scanf("%d",&a);
while(a!=0)
{
num[i]=a%2;
i++;
a = a/2;
}
for(j=i-1;j>=0;j--)
{
printf("%d",num[j]);
}
printf("\n");
}
return 0;
}