数组知识点:
定义并初始化 int a[5] = {0};
数组为int型,内含5个元素,a表示数组的首元素地址("%p"), 意味着 a =&a[0]都表示首元素地址,但是&a表示的意义不一样,&a表示整个数组的地址,如果将&a+1,那么地址将变为原来的地址+整个数组的字节数。
数组内元素个数不可为变量。数组在内存中连续排布,低元素a[0]始终位于低地址。在函数中的局部未初始化数组为垃圾值(局部变量的数组必须初始化),在函数外全局变量中数组默认初始化为0。数组一旦定义,名字不可更改,因此也被称作常指针。
字符数组: char a[5] = { '0' }
冒泡排序: 输入10个整数,对其进行从大到小排序。
#include <stdio.h>
int main()
{
int a[10] = {0};
int i;
for(i = 0 ; i < sizeof(a)/sizeof(a[0]) ; i++ )
{
scanf("%d" , &a[i]);
}
int m,n;
for( m =0 ; m < sizeof(a)/sizeof(a[0]) -1 ; m++)
{
for( n = 0; n < sizeof(a)/sizeof(a[0]) - m -1 ; n++)
{
if( a[n] < a[n+1] )
{
int t =a[n];
a[n] = a[n+1];
a[n+1] = t;
}
}
}
for(i=0; i < sizeof(a)/sizeof(a[0]) ; i++)
{
printf("%d ", a[i]);
}
return 0;
}
注意事项:
外层循环意味着要挑出9个数:循环9次
内层循环意味着比较次数:9-i-1次 分别为8 7 6 5 4 3 2 1 次
输入的数据只能多余10个,不可少于10个