好玩的C語言數組!!(冒泡排序數組)

首先理解什麼是數組,數組就是一組數據的集合。它的定義格式是
數據類型  數組名[數據長度];
或者  數據類型 數組名[數組長度]={};
或者  數據類型  數組名[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或其他程序不能運行或者出現報錯的話可以稍做修改。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章