C语言数组按大小排序,C语言数组从大到小排序

http://www.itjxue.com  2023-01-05 15:45  来源:未知  点击次数: 

c语言中怎么判断数组中每一个数是按从小打大排序?

判断:数组中的元素,若前一个元素数值 大于下一个元素数值,则 是 错误的排列;

否则,就是正确的排列(即 下一个数大于等于 前一个数)。

假定数组 有 n 个元素,数组元素数值 已知,程序如下:

#include stdio.h

int main(){

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

int i;

int flag=0,n=10; // n是元素个数,flag 是 数组元素顺序是否正确的标志

for (i=0;in-1;i++){

if (a[i]a[i+1]){ flag=1; break;}; //顺序有错时标志设1,退出循环

}

if (flag==0) printf("Right order !\n");

else printf("Wrong order !\n");

return 0;

}

C语言如何输入十个数,按从大到小顺序排列!

用选择排序法编写c语言,实现从键盘上输入10个数,按从大到小的顺序排序输出。代码如下:

#includestdio.h

int main()

{

int i,j,a[10],t;

printf("输入数");

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

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

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

{

for (j = i + 1; j 10;j++)

if (a[i] a[j]){

t = a[i];

a[i] = a[j];

a[j] = t;

}

}

printf("从大到小");

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

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

return 0;

}

扩展资料:

代码还可以设计,如下:

#includestdio.h

int main()

{

int a[10],i,j,t;//定义数组;

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

scanf("%d",a[i]);//给数组赋值;

}

for(i=0;i9;i++)//10个数,进行9轮比较;

for(j=0;j10-i;j++){//第一个数比较9次,依次递减;

if(a[j]a[j+1]) {//交换值;

t=a[j];

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

a[j+1]=t;

}

}

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

printf("%d\n",a[i]);//输出数组的值;

}

return 0;

}

}

printf("the sorted numbers:\n");

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

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

printf("\n");

}

参考资料:百度百科-printf

c语言将数组从小到大排序

有些简单的东西不用指针,用了有时反而会错

这是我以前写的

#include?stdio.h

int?main()

{

????int?i,j,x[100],y=0,a;

????printf("请输入数字数量:\n");?

????scanf("%d",a);

????printf("请输入各个数字:\n");

????for(i=0;ia;i++)

????{

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

????}

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

????//输入

????

????for(j=1;j=(a-1);j++)

????{

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

????????{

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

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

????????????????y=x[(i+1)];

????????????????x[(i+1)]=x[i];

????????????????x[i]=y;

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

????????}

????}

????//冒泡排序

????

????for(i=(a-1);i=0;i--)

????{

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

????}

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

????for(i=0;ia;i++)

????{

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

????}

????printf("\b?");

????//输出

????return?0;

}

关于C语言用选择法对数组中10个整数按由小到大排序

程序是好的。正常运行:

#includestdio.h

int main()

{

void sort(int arry[],int n);

int a[10],i;

printf("enter array:\n");

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

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

sort(a,10);

printf("the sorted array:\n");

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

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

printf("\n");

return 0;

}

void sort (int array[],int n)

{

int i,j,k,t;

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

{

k=i;

for(j=i+1;jn;j++)

if(array[j]array[k])

k=j;

t=array[k];array[k]=array[i];array[i]=t;

}

}

编写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教学网)

更多

推荐word文章