C语言编程题:输入4个整数,要求按由小到大顺序输出怎么编啊?

作者&投稿:全涛 (若有异议请与网页底部的电邮联系)
用计算机C语言程序设计 输入4个整数,要求按由小到大的顺序输出~

#include"stdio.h"
main()
{int a[4],i,j;
printf("请输入四个整数:
"); //以空格分开//
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("排列后的顺序是:
");
for(i=0;i<4;i++)
printf("%5d",a[i]);
}
用VC++运行过了,没错!如有问题请联系!




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


#include
#include

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 的位置换一换就行了。


利用函数的模块化设计。

1、完成整体函数格局,输入、排序、输出。

2、输入函数代码如下:

3、排序函数代码如下:

4、输出函数代码如下:

5、执行结果:

扩展资料:

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

执行结果同上。



#include<stdio.h>

int main()

{

int t,a,b,c,d;

printf("请输入4个数:");

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
",a,b,c,d);

return 0;

}



一、冒泡排序,代码和运行结果如图所示。

重复地走访过要排序的元素列,依次比较两个相邻的元素,如果他们的顺序(如从大到小、首字母从A到Z)错误就把他们交换过来。走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素已经排序完成。

二、选择排序,代码和运行结果如图所示。

思想:选择排序,让数组中的每一个数,依次与后面的数进行比较,如果前面的数大于后面的数,就进行位置的交换。换个说法,选择排序:第一个数依次与后面的数比较,第一次比较完之后最小的数在最前面 。

扩展资料:

冒泡排序算法的原理如下:

1、比较相邻的元素。如果第一个比第二个大,就交换他们两个。

2、对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。

3、针对所有的元素重复以上的步骤,除了最后一个。

4、持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。

参考资料:百度百科——冒泡排序



使用冒泡排序法进行编程:

解释:

1.第一个for循环:利用数组循环输入4个变量。

2.第二个for循环:该循环的意思是如果a[0]>a[1]的话,两个变量的值交换,利用循环依次比较。要注意的是i<3,因为其中有i+1,i最大取到2,也就是i+1最大取到3才正确。

3.第三个for循环:利用循环依次输出排序后的数组,每输出一个加一个空格以便于区分。

扩展资料:

冒泡排序法,从数组头部开始,不断比较相邻的两个元素的大小,通过交换两个元素的值使较大的元素逐渐往后移动,直到数组的末尾。

经过第一轮的比较,就可以找到最大的元素,并将它移动到最后一个位置。第一轮结束后,继续第二轮。仍然从数组头部开始比较,让较大的元素逐渐往后移动,直到数组的倒数第二个元素为止。

经过第二轮的比较,就可以找到次大的元素,并将它放到倒数第二个位置。

以此类推,进行 n-1(n 为数组长度)轮“冒泡”后,就可以将所有的元素都排列好。



将四个数存到数组中,然后排序即可。

排序后,再利用循环输出。

代码:

#include <stdio.h>
int main()
{
    int a[4],i,j;
    for(i = 0; i < 4; i ++)
        scanf("%d",&a[i]);
    for(i = 0; i < 3; i ++)
        for(j = i+1; j < 4; j ++)
        {
            int t;
            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语言编程:编写一个程序,输入4个数,求其平均值
直接编译,程序输出结果中任意输入4个数字,程序执行结果如下图所示:

如何用C语言编程"输入4个数,通过加减乘除计算出24,显示计算过程,并提 ...
{int i,j,k,l,n,m,r,save[4];double num[4]={1,1,1,1},tem1,tem2,tem3,abc=1111;char sign[5]="+-*\/";printf("input 4 numbers:");for(i=0;i<4;i++){scanf("%lf",num+i); save[i]=num[i];} for(i=0;i<4;i++)for(j=0;j<4;j++)if(j!=i){for(k=...

输入4个整数a,b,c,d,把这四个数由小到大输出(C语言编程)
include"stdio.h"void main(){ int a, b, c, d, t; printf("输入四个数:\\n"); scanf("%d %d %d %d", &a, &b, &c, &d); if (a > b) { t = a; a = b; b = t; } if (b > c) { t = b; b = c; c = t; } if (c > d) { t...

.用C语言编程:输入4个数,要求小到大输出使用循环语句
void main(){ int i,a[5],j;int temp;printf("请输入4个整数");printf("排列前的数:");for (i=0;i<4;i++)scanf("%d",&a[i]);for(i=0;i<4;i++){ for(j=0;j<4-i-1;j++){ if(a[j]>a[j+1]){ temp=a[j];a[j]=a[j+1];a[j+1]=temp;} } } printf("...

C语言编程题:输入4个整数,要求按由小到大顺序输出怎么编啊?_百度知 ...
利用函数的模块化设计。1、完成整体函数格局,输入、排序、输出。2、输入函数代码如下:3、排序函数代码如下:4、输出函数代码如下:5、执行结果:

c语言编程题:输入4个数,输出最大和最小的均值
main(){ int i,k,t=0,n=4,max,min,sum=0;scanf("%d",&n);scanf("%d",&k);if(k%2==0){t++;sum+=k;} max=k;min=k;for(i=1;i<n;i++){ scanf("%d",&k);if(max<k)max=k; if(min>k)min=k;if(k%2==0){t++;sum+=k;} } printf("%d %d %f",max,min...

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行字符,每行不超过60个,把其中的'$'转换成'S...
这是4行输入4行输出的版本 include<stdio.h> int main(){ char str[4][61];int i,j;for (i=0; i<4; ++i)gets(str[i]);for (i=0; i<4; ++i){ for (j=0;str[i][j]!='\\0';++j){ if ('$'==str[i][j])str[i][j]='S';printf("%c", str[i][j]);} pri...

C语言的题目:从键盘上输入4个数,输出其中最小值
VC6.0通过,楼主笑纳 include <stdio.h> void main(){ double a,b,c,d,min;printf("Input 4 numbers:\\n");scanf("%lf%lf%lf%lf",&a,&b,&c,&d);min=a;if(min>b)min=b;else if(min>c)min=c;if(min>d)min=d;else min=min;printf("The min is %.2lf",min);} ...

c语言编程 输入4个学生5门课的成绩,分别用函数实现下列功能
{ int i,j,li=0,lj=0;float score[10][5],average[10],a1,a2,a3,a4,a5,largest=0,fc=0,a=0;\/\/score是50个学生的成绩,average是5门课的平均成绩,a1-a5分别是5门课的平均成绩,li是最高分的学生 \/\/lj是最高分的学科,largest是最高分,fc是平均分方差,a是50个成绩的平均分 pri...

余杭区14797336909: 用计算机C语言程序设计 输入4个整数,要求按由小到大的顺序输出 -
崔帜托吡: #include"stdio.h" 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;i<4;i++)printf("%5d",a[i]); } 用VC++运行过了,没错!如有问题请联系!

余杭区14797336909: C语言编程,输入4个整数,要求按大小顺序输出. -
崔帜托吡: 在vc中编译通过,你可以改成输入很多个数,按大小输出:#include void main() { int a[4]; int i,j,t; for(i=0;i { cin>>a[i]; } for(i=0;i for(j=i+1;j { if(a[i] { t=a[i]; a[i]=a[j]; a[j]=t; } } for(i=0;i { cout } }

余杭区14797336909: 求高手用C语言帮写个程序:输入4个整数,要求按由大到小的顺序输出.先谢谢拉! -
崔帜托吡: /* 输入4个整数(逗号隔开) : 23 45 80 9 排序后 : 80 45 23 9 请按任意键继续. . . */ #include <stdio.h>const int N = 4;void SelectSort(int a[], int n) {int i,j,k,t;for(i = 0; i < n - 1; ++i) {k = i;for(j = i + 1; j < n; ++j) {if(a[j] > a[k]) k = j;}if(i != k) {t =...

余杭区14797336909: C语言编程题:输入4个整数,要求按由小到大顺序输出怎么编啊? -
崔帜托吡: 将四个数存到数组中,然后排序即可. 排序后,再利用循环输出. 代码: #include <stdio.h> int main() { int a[4],i,j; for(i = 0; i < 4; i ++) scanf("%d",&a[i]); for(i = 0; i < 3; i ++) for(j = i+1; j < 4; j ++) { int t; 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]); }

余杭区14797336909: C语言写出 ,输入4个整数,要求按由大到小的顺序输出? -
崔帜托吡: 用冒跑法写: main() { int a[4]; int i,j,t; printf("input 4 numbers:\n"); /*提示输入数据*/ for(i=1;i<5;i++) scanf("%d",&a[i]); /*输入四个整数*/ for(i=1;i<4;i++) for(j=0;j<4;j++) if(i>j) { t=i;i=j;j=t;} for(i=1;i<=4;i++) printf("%d",a[i]); /*输出从小到大的四个数*/ }

余杭区14797336909: C语言编程题:输入4个整数,要求按由小到大顺序输出怎么编啊?(要用switch case语句) -
崔帜托吡: #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 (a[...

余杭区14797336909: C语言 输入4个整数,要求按由小到大的顺序输出 -
崔帜托吡: t=a; a=c; c=t; 这是将a的值和c的值进行交换的意思.设置一个中间变量t,保存a的值.然后将c的值赋给a,此时a的值被覆盖,然后a原来的值保存在t里,所以c=t.

余杭区14797336909: 输入4个整数,要求按由小到大的顺序输出,用C语言怎么编程呀?求高人指点呀! -
崔帜托吡: #include<stdio.h>#define MAX 4 //定义输入数的个数 void main () { int a[MAX], i, j, tmp; printf ("input %d numbers:\n", MAX); for (i = 0; i < MAX; i++) { scanf ("%d", a+i);for (j = 0; j < i; j++) //从第一个数开始与这个输入的数比较if (a[i] < a[j]) { //...

余杭区14797336909: 输入4个整数,要求按从小到大顺序输出这4个数.(C语言试题)
崔帜托吡: 我的程序和上面这位的差不多,不过我的输出比它的完善! #include<stdio.h> #define N 4 void main() {int a[N],i,j,t; for(i=0;i<N;i++) scanf("%d",&a[i]); for(i=0;i<N-1;i++) for(j=0;j<N-1-i;j++) if(a[j]>a[j+1]) {t=a[j];a[j]=a[j+1];a[j+1]=t;} for(i=0;i<N;i++) printf("%d ",a[i]); }

余杭区14797336909: 输入4个整数,要求从大到小按顺序输出....c语言编程.xiexie -
崔帜托吡: # include 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]{ t=a[j+1]; a[j+1]=a[j]; a[j]=t; } } for(i=0;i<4;i++) /* 分别输出排完后的4个数 */ printf("%d ",a[i]); } return 0; }

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网