C语言数组按大小排序,C语言数组从大到小排序
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;
}