首先理解什么是数组,数组就是一组数据的集合。它的定义格式是
代码主要判断就在if那里,然后定义一个第三变量去交换到两个数组元素比较之后排序的值。
数据类型 数组名[数据长度];
或者 数据类型 数组名[数组长度]={};
或者 数据类型 数组名[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或其他程序不能运行或者出现报错的话可以稍做修改。