c语言一维数组排序从小到大,c语言怎样将一维数组从小到大排列

http://www.itjxue.com  2023-01-06 22:01  来源:未知  点击次数: 

c语言,一维数组实现10个数从小到大例子

下面两个for的意思是,先把x[0]和x[9]比较,如果x[0]x[9],则把他们位置颠倒,然后x[0]和x[8],如果x[0]x[8],则把他们位置颠倒.....一直到j=1(也就是j=i,不满足条件ji)结束。接下来就是x[1]和x[9]比较如果x[1]x[9],则把他们位置颠倒........知道i=9结束。不知道能不能看懂。。PS:排序是个数的话应该是(i=0;i10;i++)

用C语言编写函数,功能是可以实现一维数组的从小到大的排序,数组长度为8

#include?stdio.h

void?func(int?*a)

{

????int?i,j,temp;

????for(j=0;j=7;j++)?

????{?

????????for?(i=0;i7-j;i++)?

????????????if?(a[i]a[i+1])?

???????????{?

???????????????temp=a[i];?

???????????????a[i]=a[i+1];?

???????????????a[i+1]=temp;

????????????}?

????}?

}

int?main()

{

????int?a[8]={8,7,6,5,4,3,2,1};

????func(a);

????for(int?i=0;i8;i++)

????{

????????printf("%d?",a[i]);

????}

????return?0;

}

func就是功能函数实现数组a[8]的排序。

c语言问题,把一维数组的N(N=10)个元素按由小到大的顺序排序输出

根据题意可得代码:

#includestdio.h

#define?N?10

int?main()

{

????int?a[N],?i,?j,?k;

????//输入

????for(i?=?0;?i??N;?++i){

????????scanf?("%d",?a[i]);

????}

????//选择排序

????for?(i?=?0;?i??N-1;?++i){

????????k?=?i;

????????for?(j?=?i+1;?j??N;?++j){

????????????if?(a[k]??a[j]){

????????????????k?=?j;

????????????}

????????}

????????if?(k?!=?i){

????????????j?=?a[k];

????????????a[k]?=?a[i];

????????????a[i]?=?j;

????????}

????}

????//输出

????for?(i?=?0;?i??N;?++i){

????????printf?("%d?",?a[i]);

????}

????printf?("\n");

????return?0;

}

c语言 定义一个函数,将一个一维数组中数据从小到大排序

#includestdio.h

#define N 10

void sortarray(int *a,int n) { int i,j,k;

for ( i=0;in-1;i++ ) for ( j=i+1;jn;j++ ) if ( a[i]a[j] ) {k=a[i];a[i]=a[j];a[j]=k;}

}

void main() { int a[N],i;

for ( i=0;iN;i++ ) scanf("%d",a[i]);

for ( i=0;iN;i++ ) printf("%d ",a[i]); printf("\n");

sortarray(a,N);

for ( i=0;iN;i++ ) printf("%d ",a[i]); printf("\n");

}

c语言编写函数将一维数组从小到大排序,在主函数中读入数组的元素,再插入一个数据,插入后数组仍然有序

int [] array =new int[*]; //一维数组

int temp=0; //容器

int i; //循环参数

int j; //循环参数

for(i=0;iarray.length-1;i++) //表示数组中前一个数

{

for(j=i+1;jarray.length;j++)//表示数组中后一个数

{

if(array[i]array[j]) //如果前一个数 后一个数

{

temp=array[i];

array[i]=array[j];

array[j]=temp;

}

}

}

和?

int temp=0;

for(i=0;ilength-1;i++)

{

trmp+=array[i];

}

编写C语言程序,把一个数组按从小到大的次序排列起来

源程序以及算法注释如下:

#define _CRT_SECURE_NO_WARNINGS//VS编译环境需要进行宏定义,VC6.0可忽略

#includestdio.h//输入输出头文件

int main()

{

int number[10], New_number[10];//定义数组的数据类型为整型

int i, j, m, n, k;//定义变量的数据类型为整型

printf("input 10 int number:");//文字提示

for (i = 0; i = 9; i++)//用循环输入数值给数组number并赋给数组New_number

{

scanf("%d", number[i]);//输入10个整形数字到数组中

New_number[i] = number[i];//数组number元素赋给数组New_number

}

for (n = 0; n = 8; n++)//要进行(10-1)组比较

for (j = 0; j = 8 - n; j++)//每组进行(10减第几组)次比较

{

if (number[j] number[j + 1])//比较大小并将小的赋给前面的数组

{

k = number[j];//将相对较大的元素赋值给中间元素

number[j] = number[j + 1];//将相对较小的元素送达前面一个位置

number[j + 1] = k;//将中间变量元素送给后面一个位置

}

if (New_number[j] New_number[j + 1])//比较大小并将大的赋给前面的数组

{

k = New_number[j + 1];//将相对较小的元素赋值给中间元素

New_number[j + 1] = New_number[j];//将相对较大的元素送达前面一个位置

New_number[j] = k;//将中间变量元素送给后面一个位置

}

}

printf("min--max:\n");//文字提示

for (m = 0; m = 9; m++)//依次从小到大输出

printf("%d ", number[m]);//输出元素

printf("\n");

printf("max--min:\n");//文字提示

for (m = 0; m = 9; m++)//依次从大到小输出

printf("%d ", New_number[m]);//输出元素

printf("\n");

return 0;

}

程序运行结果如下:

扩展资料:

其他简单实现程序:

#includestdio.h

int main()

{

int a[10]={0};

int i,j,temp;

for(i = 0;i10;i++)

{

scanf("%d",a[i]);

}

for(i = 0;i10;i++)

{

for(j = 0;j10-i-1;j++)

{

if(a[j]a[j+1])

{

temp = a[j];

a[j] = a[j+1];

a[j+1] = temp;

}

}

}

for(i = 0;i10;i++)

printf("%d ",a[i]);

return 0;

}

(责任编辑:IT教学网)

更多

推荐计算机等级考试文章