C语言写出 ,输入4个整数,要求按由大到小的顺序输出?

供稿:hz-xin.com     日期:2025-01-15
输入10个整数按照由大到小的顺序如何输出C语言编写?

#include
#define NUM 10
void main()
{
int i,j,k,a[NUM];
printf("请输入10个数字进行从大到小的排序:");
for(i=0;i<NUM;i++)
{
scanf("%d",&a[i]);
}
for(i=0;i<NUM;i++)
{
for(j=0;j<NUM;j++)
{
if(a[i]>a[j])
{
k=a[i];
a[i]=a[j];
a[j]=k;
}
}
}
for(i=0;i<NUM;i++)
{
printf("%d",a[i]);
}
}

利用函数的模块化设计。
1、完成整体函数格局,输入、排序、输出。

2、输入函数代码如下:

3、排序函数代码如下:

4、输出函数代码如下:

5、执行结果:

扩展资料:
利用数组和循环结构实现排序功能,具体代码如下:

执行结果同上。

 
 
 
你可以利用 C 标准库 stdlib.h 里的 qsort( ) 完成任何类型的数组的快速排序:

#include<stdio.h>
#include<stdlib.h>

int compare( const int *a, const int *b ) { return *b - *a; }

int main( ) {

    int ia[ 4 ],
        width = sizeof *ia,
        num = sizeof ia / width,
        j;

    puts( "Enter four integers to be sorted in descending order:" );
    for( j = 0; j < num; ++j )
        scanf( "%d", &ia[ j ] );
    
    qsort( ia, num, width, compare );

    for( j = 0; j < num; ++j )
        printf( "%d ", ia[ j ] );
}

调用 qsort( ) 只需要传入四个参数:
1)数组指针:指向要排序的数组
2)数组的元素个数
3)数组的元素字节长度
4)函数指针:指向我们定义的一个比较两个元素大小的函数

若是要 qsort( ) 做由小到大的排序,我们定义的函数的返回值和相应的条件必须是:

返回值      条件
======    =====
   < 0       *a  <  *b
      0       *a == *b
   > 0       *a  >  *b

要达到以上的要求其实就只需写 “*a - *b” 。

而若是要 qsort( ) 做由大到小的排序,把 *a 和 *b 的位置换一换就行了。
 
 
 

4个整数的排序,有使用单个变量和使用数组二种方法实现。
使用单个变量的方法:
#include<stdio.h>
int main()
{int a,b,c,d,t;
scanf("%d%d%d%d",&a,&b,&c,&d);
if(a>b){t=a;a=b;b=t;}
if(a>c){t=a;a=c;c=t;}
if(a>d){t=a;a=d;d=t;}
if(b>c){t=b;b=c;c=t;}
if(b>d){t=b;b=d;d=t;}
if(c>d){t=c;c=d;d=t;}

printf("%d %d %d %d\n",a,b,c,d);
return 0;
}

使用数组和循环的方法:
#include<stdio.h>
int main()
{int a[4],i,j,t;
for(i=0;i<4;i++) //读入4个数据
scanf("%d",&a[i]);
for(i=0;i<3;i++) //冒泡排序
for(j=0;j<3-i;j++)
if(a[j]>a[j+1])
{t=a[j];a[j]=a[j+1];a[j+1]=t;}

for(i=0;i<4;i++) //输出4个数据
printf("%d ",a[i]);
printf("\n");
return 0;
}

4个整数的排序,有使用单个变量和使用数组二种方法实现。
使用单个变量的方法:
#include<stdio.h>
int
main()
{int
a,b,c,d,t;
scanf("%d%d%d%d",&a,&b,&c,&d);
if(a>b){t=a;a=b;b=t;}
if(a>c){t=a;a=c;c=t;}
if(a>d){t=a;a=d;d=t;}
if(b>c){t=b;b=c;c=t;}
if(b>d){t=b;b=d;d=t;}
if(c>d){t=c;c=d;d=t;}
printf("%d
%d
%d
%d\n",a,b,c,d);
return
0;
}
使用数组和循环的方法:
#include<stdio.h>
int
main()
{int
a[4],i,j,t;
for(i=0;i<4;i++)
//读入4个数据
scanf("%d",&a[i]);
for(i=0;i<3;i++)
//冒泡排序
for(j=0;j<3-i;j++)
if(a[j]>a[j+1])
{t=a[j];a[j]=a[j+1];a[j+1]=t;}
for(i=0;i<4;i++)
//输出4个数据
printf("%d
",a[i]);
printf("\n");
return
0;
}

你可以利用
C
标准库
stdlib.h
里的
qsort(
)
完成任何类型的数组的快速排序:
#include<stdio.h>
#include<stdlib.h>
int
compare(
const
int
*a,
const
int
*b
)
{
return
*b
-
*a;
}
int
main(
)
{
int
ia[
4
],
width
=
sizeof
*ia,
num
=
sizeof
ia
/
width,
j;
puts(
"Enter
four
integers
to
be
sorted
in
descending
order:"
);
for(
j
=
0;
j
<
num;
++j
)
scanf(
"%d",
&ia[
j
]
);
qsort(
ia,
num,
width,
compare
);
for(
j
=
0;
j
<
num;
++j
)
printf(
"%d
",
ia[
j
]
);
}
调用
qsort(
)
只需要传入四个参数:
1)数组指针:指向要排序的数组
2)数组的元素个数
3)数组的元素字节长度
4)函数指针:指向我们定义的一个比较两个元素大小的函数
若是要
qsort(
)
做由小到大的排序,我们定义的函数的返回值和相应的条件必须是:
返回值 条件
====== =====
<
0 *a < *b
0 *a
==
*b
>
0 *a > *b
要达到以上的要求其实就只需写
“*a
-
*b”

而若是要
qsort(
)
做由大到小的排序,把
*a

*b
的位置换一换就行了。

4个整数的排序,有使用单个变量和使用数组二种方法实现。
使用单个变量的方法:
#include<stdio.h>
int
main()
{int
a,b,c,d,t;
scanf("%d%d%d%d",&a,&b,&c,&d);
if(a>b){t=a;a=b;b=t;}
if(a>c){t=a;a=c;c=t;}
if(a>d){t=a;a=d;d=t;}
if(b>c){t=b;b=c;c=t;}
if(b>d){t=b;b=d;d=t;}
if(c>d){t=c;c=d;d=t;}
printf("%d
%d
%d
%d\n",a,b,c,d);
return
0;
}
使用数组和循环的方法:
#include<stdio.h>
int
main()
{int
a[4],i,j,t;
for(i=0;i<4;i++)
//读入4个数据
scanf("%d",&a[i]);
for(i=0;i<3;i++)
//冒泡排序
for(j=0;j<3-i;j++)
if(a[j]>a[j+1])
{t=a[j];a[j]=a[j+1];a[j+1]=t;}
for(i=0;i<4;i++)
//输出4个数据
printf("%d
",a[i]);
printf("\n");
return
0;
}

C语言写出 ,输入4个整数,要求按由大到小的顺序输出?
} 调用 qsort( ) 只需要传入四个参数:1)数组指针:指向要排序的数组 2)数组的元素个数 3)数组的元素字节长度 4)函数指针:指向我们定义的一个比较两个元素大小的函数 若是要 qsort( ) 做由小到大的排序,我们定义的函数的返回值和相应的条件必须是:返回值条件 === < 0*a<*b 0*a =...

用计算机C语言程序设计 输入4个整数,要求按由小到大的顺序输出_百度知 ...
main(){int a[4],i,j;printf("请输入四个整数:\\n"); \/\/以空格分开\/\/ for(i=0;i<4;i++)scanf("%d",&a[i]);for(i=1;i<4;i++)for(j=0;j<=4-i;j++)if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;} printf("排列后的顺序是:\\n");for(i=0;...

编程,任意输入4个整数,要求按从小到大的次序输出。
就是排序这是用C语言写的 #include "stdio.h"main(){ int i=0; int j=0;int size; int num[size];printf("请输入你要排序的个数:\\n",size);scanf("%d",&size);printf("请输入你要排序的%d个数:\\n",size);for(i=0;i<size;i++){ scanf("%d",&num[i]);} for(i...

C语言编程题:输入4个整数,要求按由小到大顺序输出怎么编啊?(要用sw...
include<stdio.h> main(){ int i,j,temp;int a[4];printf("Please you input the four number you want to campare!\\n");for(i=0;i<4;i++) \/*输入要比较的四个数字*\/ scanf ("%d,",&a[i]);for(j=0;j<4;j++)\/*采用冒泡排序法排序*\/ { for (i=0;i<4-j;i++)if ...

C语言,程序设计 输入4个整数,要求按由小到大的顺序输出 怎么做啊...
\/\/程序如下:#include<stdio.h>#define N 15void BubbleSort(int array[],int n){ int i,j,temp;\/\/外循环控制循环趟数 for(i=0; i<n-1; i++) {\/\/内循环选择要进行比较的数 for(j=0; j<n-1-i; j++) { if(array[j]>array[j+1]) { temp=array[j]; arra...

C语言编程,输入4个整数,按从小到大顺序输出
} } if(k != i){ int temp = num[k]; num[k] = num[i]; num[i] = temp; } } for(int i = 0 ; i < 4 ; i++){ printf("%d ", num[i]); } return 0;}

c语言编程,输入四个整数,要求按由大到小顺序输出。
void * b){ return((*(int*)a-*(int*)b<0)?1:-1);}int main(){ int a[4]; int i; for(i=0;i<4;i++) scanf("%d",&a[i]); qsort(a,4,sizeof(a[0]),cmp); for(i=0;i<4;i++) printf("%d ",a[i]);} ...

输入四个数,要求按照从大到小的顺序输出。使用c语言程序来设计_百度知 ...
void main(){ int i,j,a[4],t;for(i = 0 ;i < 4; i++)scanf("%d",&a[i]);for(i =0 ;i<3;i++){ for(j = i+1; j <4;j++){ if(a[i]<a[j]){ t = a[i];a[i] = a[j];a[j] = t;} } } for( i = 0; i< 4;i++)printf("%d ",a[i]);} ...

用C语言编写:输入四个整数,按由小到大输出
void main(){ int i,j,temp;int a[4];printf("请输入四个数:\\n");for(i = 0;i < 4;i++)scanf("%d",&a[i]);for(i = 0;i<3;i++){ for(j = i+1;j<4;j++){ if(a[i] > a[j]){ temp = a[j];a[j] = a[i];a[i] = temp;} } } printf("\\n排序后...

输入4个整数,要求从大到小按顺序输出。。。c语言编程.xiexie
int main(){ int i,j,t,a[4];\/* 定义一个数组用来存这4个数 *\/ for(i=0;i<4;i++)scanf("%d",&a[i]); \/* 录入4个数 *\/ for(i=0;i<4;i++) \/* 冒泡法 *\/ for(j=0;j<3-i;j++){ if(a[j]<a[j+1]) \/* 比较相邻的两个数,da的调前面。*\/ { ...