您的位置:首页 > 编程语言 > C语言/C++

C语言_数组与排序

2016-02-29 09:32 330 查看
1、数组定义

数组:一组有序数据的集合。

//定义一个长度为5的整形数组

//数组里存储的是5个int类型的变量

int arr[5];

int //数组的数据类型

arr //数组的名字

5 //数组的长度

2、数组下标

数组的下标从0开始,到n-1结束(n是数组长度)。

int arr[5];

0

1

2

3

4

3、数组元素

数组里存储的每一个变量都称为数组的一个元素。

int arr[5];

arr[0] = 5;

arr[1]

arr[2]

arr[3]

arr[4]

4、数组赋值

1)初始化

int arr[5];

//未初始化的数组,每个元素的值默认是随机值;

int arr[5] = {1,2,3,4,5}; //完全初始化

int arr[5] = {1,2,3}; //部分初始化

//部分初始化中,未初始化的元素默认值是0;

int arr[] = {2,3,4,5,6}; //完全初始化的一种

//数组的长度是初始化中元素的个数;

int arr[5] = {};

//数组中的每个元素值都为0;

int arr[]; //错误的定义——未指明数组长度

int arr
; //错误的定义——定义数组必须指明长度,不可以在[]里写变量。


int n;

scanf(“%d”,&n);

int arr
;

编译:静态的检查语法错误

运行:动态的检查逻辑错误

//数组的长度是在编译阶段分配的;

//scanf输入是在运行阶段进行的;

2)赋值

//数组的赋值需要对每个元素分别赋值;

int arr[5];

arr[0] = 3;

arr[1] = 4;

arr[2] = 5;

arr[3] = 6;

arr[4] = 7;

arr[5] = {1,2,3,4,5}; //错误的赋值

定义一个长度为6的整型数组,通过键盘输入分别给数组每个元素赋值,求所有元素的和,并输出。

5、排序

1)冒泡排序

排序规则(升序):数组里相邻元素依次两两比较,如果后面元素值比前面元素值小,则交换两元素值;比较结束,最大的元素值会沉底,一轮排序结束。

后续每一轮排序规则都按第一轮排序规则排,但是已经排好序的元素不再参与排序。

//长度为n的数组,只需要排序n-1轮

4 5 8 6 3

4 5 6 3 8 一轮排序结果

4 5 3 6 8 二轮排序结果

4 3 5 6 8 三轮排序结果

3 4 5 6 8 四轮排序结果

3 4 5 6 8 五轮排序结果

冒泡排序DEMO

#include <stdio.h>

int main(int argc, const char * argv[]) {

// insert code here...

int arr[5] = {4, 5, 8, 6, 3};

int temp;

//升序排列

//外层循环控制排序的轮数

for (int i = 0; i < 4; i++)

{

//内层循环控制每一轮的排序结果

for (int j = 0; j < 5-i-1; j++)

{

if (arr[j] > arr[j+1])

{

temp = arr[j];

arr[j] = arr[j+1];

arr[j+1] = temp;

}

}

for (int k = 0; k < 5; k++)

{

printf("%d ",arr[k]);

}

printf("\n");

}

return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: