定义及元素引用
一维数组的定义为:类型说明符 数组名[常量表达式]; 如int a[10];
数组的命名规则和变量名相同,定义数组时,需要指定数组中元素的个数,"[]"中的常量表达式用来表示元素的个数,即数组长度。
数组元素的表现形式为数组名[下标],下标可以是整型常量或整型表达式。
特点:
1.单一性:数组中各元素所占字节大小都相同。
2.有序性:下标小的元素总靠前,放在下标大的元素之前(地址)。
3.连续性:各元素之间在内存中存放时没有间隔。
选择排序:在数组合适的位置上放上合适的数。
求最大值和次最大值
#include<limits.h>
int main(void)
{
int a[] = {10,2,3,4,5,6,7,8,9,0};
int len = sizeof(a) / sizeof(a[0]);
int max, i;
max = a[0];
for(i = 1;i < len;++i)
{
if(max < a[i])
{
max = a[i];
}
}
printf("%d\n", max);
int max1 = INT_MIN;
for(i = 0;i < len;++i)
{
if(max1 < a[i] && a[i] != max)
{
max1 = a[i];
}
}
printf("%d\n", max1);
return 0;
}
逆序
int main(void)
{
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 t;
t = a[i];
a[i] = a[len - i - 1];
a[len - i - 1] = t;
}
for(i = 0;i < len;++i)
{
printf("%d\n", a[i]);
}
return 0;
}
选择排序
int main(void)
{
int a[] = {-1,2,-3,4,-5,6,-7,8,-9,0};
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 t;
t = a[i];
a[i] = a[j];
a[j] = t;
}
}
}
for(i = 0;i < len;++i)
{
printf("%d\n", a[i]);
}
return 0;
}
冒泡排序
int main(void)
{
int a[] = {-1,2,-3,4,-5,6,-7,8,-9,0};
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(void)
{
int a[] = {-1,2,-3,4,-5,6,-7,8,-9,0};
int len = sizeof(a) / sizeof(a[0]);
int i, j;
for(i = 1;i < len;++i)
{
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;
}