一、一维数组的定义
1、定义方式:类型说明符 数组名[常量表达式];
(1)数组名的命名规则和变量名相同,遵循标识符命名规则。
(2)在定义数组时,需要指定数组元素的个数,方括号的常量表达式用来表示元素的个数,即数组长度。
(3)常量表达式中可以包括常量和符号常量,不能包含程序运行中可变的值。
2、数组必须先定义,然后使用。
(1)数组元素的表示形式为 数组名[下标]
3、初始化
(1)在定义数组时对数组元素赋予初值,用花括号
(2)可以只给一部分元素赋值
(4)在对全部数组元素赋初值时,由于数据的个数已经确定,因此可以不指定数组长度
4、最大值、次大值
int main()
{
int a[] = {1,2,3,4,5,6,7,8,9,0};
int len = sizeof(a) / sizeof(a[0]);
int i;
int max = a[0];
for(i = 1;i < len;++i)
{
max < a[i] ? max = a[i] : max;
}
int max1 = INT_MIN;
for(i = 1;i < len;++i)
{
if(max1 < a[i] && a[i] != max)
{
max1 = a[i];
}
}
printf("%d\n",max1);
printf("%d\n",max);
return 0;
}
5、逆序
int main()
{
int a[] = {1,2,3,4,5,6,7,8,9,0};
int len = sizeof(a) / sizeof(a[0]);
int i;
for(i = 0;i < len / 2;++i)
{
int m;
m = a[i];
a[i] = a[len - i - 1];
a[len - i - 1] = m;
}
for(i = 0;i < len;++i)
{
printf("%d\n",a[i]);
}
return 0;
}
6、排序方式
选择排序
int main()
{
int a[]={2,46,24,21,511,14,22,3,4};
int len = sizeof(a) / sizeof(a[0]);
int i,j;
for(i = 0;i < len - 1;++i)
{
for(j = i + 1;j < len;++j)
{
if(a[i] > a[j])
{
int n;
n = a[i];
a[i] = a[j];
a[j] = n;
}
}
}
for(i = 0;i < len;++i)
{
printf("%d\n",a[i]);
}
return 0;
}
冒泡排序
int main()
{
int a[]={2,46,24,21,511,14,22,3,4};
int len = sizeof(a) / sizeof(a[0]);
int i,j;
for(j = len - 1;j > 0;--j)
{
for(i = 0;i < j;++i)
{
if(a[i] > a[i + 1])
{
int t;
t = a[i];
a[i] = a[i + 1];
a[i + 1] = t;
}
}
}
for(i = 0;i < len;++i)
{
printf("%d\n",a[i]);
}
return 0;
}
插入排序
int main()
{
int a[]={2,46,24,21,511,14,22,3,4};
int len = sizeof(a) / sizeof(a[0]);
int i;
for(i = 1;i < len;++i)
{
int j;
int t = a[i];
j = i;
while(j > 0 && a[j - 1] > t)
{
a[j] = a[j - 1];
--j;
}
a[j] = t;
}
for(i = 0;i < len;++i)
{
printf("%d\n",a[i]);
}
return 0;
}