數據類型 數組名[數據長度];
或者 數據類型 數組名[數組長度]={};
或者 數據類型 數組名[3]={1,2,3};
數組內的數據用逗號分隔。
數組的初始化可以在定義的時候初始化賦值,或者可以通過下標賦值。(數組的每一個元素都有序號,序號從0開始,而不是從1開始,這樣的序號稱作下標,下標必須爲整數,而且必須大於等於0,小於數組長度,否則數組會發生越界)
①如果賦值的數小於數組長度的話,後面的數組元素賦值爲當前類型的默認值,比如int,long,short型的數組,賦值爲0;float,double型的數組默認值爲0.000000;char型的默認值爲'\0';
例如:int a[5]={1,2,3}; 那麼a[5]={1,2,3,0,0};這裏注意一下溢出,數組長度int a[5]={1,2,3,4,5,6} 這樣子寫是錯誤的。
②只能給元素單個賦值,不能整體賦值
例如給a數組賦5個值int a[5]={1,1,1,1,1}; 不能寫成int a[5]={1};
③如果給數組全部賦值,可以不寫數組長度
例如int a[5]={1,2,3,4,5}; 等價於int a[]={1,2,3,4,5};
數組內每個元素的類型必須與數組類型一致,且數組下標必須爲整數。
接下來分析一下冒泡排序
#include<stdio.h>
#include<stdlib.h>
void main(){
int i,j;
int a[]={1,2,3,4,5,6,7,8,9,0};
printf("給數組賦的十個值:\n");
for(i=0;i<10;i++)
{
scanf("%d",&a[i]);
}
printf("該數組爲:\n");
for(i=0;i<10;i++)
{
printf("%d ",a[i]);
}
printf("\n降序排序爲:\n");
for(i=0;i<10;i++)
{
for(j=i+1;j<10;j++)
{
if(a[i]<a[j])
{
int temp=a[i];
temp=a[j];
a[j]=a[i];
a[i]=temp;
}
}
printf("%d ",a[i]);
}
printf("\n升序排序爲:\n");
for(i=0;i<10;i++)
{
for(j=i+1;j<10;j++)
{
if(a[i]>a[j])
{
int temp=a[i];
temp=a[j];
a[j]=a[i];
a[i]=temp;
}
}
printf("%d ",a[i]);
}
getchar();
getchar();
}
代碼主要判斷就在if那裏,然後定義一個第三變量去交換到兩個數組元素比較之後排序的值。
這些代碼編程都是在VS2012裏寫的,有一些地方可能會有錯誤,但是我這能運行,如果在vc6.0或其他程序不能運行或者出現報錯的話可以稍做修改。