c语言一维数组排序从小到大,c语言怎样将一维数组从小到大排列
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;
}