c语言问题 编程要求将输入的四个数字按从小到大的顺序输出,,,要求使用数组实现只要过程,废话的闪

作者&投稿:高省 (若有异议请与网页底部的电邮联系)
C语言写出 ,输入4个整数,要求按由大到小的顺序输出?~




你可以利用 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 的位置换一换就行了。


#includeint main(){int a[4]; //数组存储数据int i,j;for( i=0;i a[j] ){int t=a[i];a[i]=a[j];a[j]=t;}for( i=0;i<4;i++ ) //循环输出printf("%d ", a[i] );printf("
");return 0;}


#include<stdio.h>
#define N 4
#define swap(integer1,integer2,tmp) {tmp=integer2;integer2=integer1;integer1=tmp;}
void main(void)
{
int a[N];
int tmp,i,j;
printf("Input FOUR number: ");
for(i=0;i<N;i++)
scanf("%d",a+i);
for(i=0;i<N-1;i++)
for(j=i;j<N;j++)
if(a[i]>a[j])swap(a[i],a[j],tmp);
printf("Output: ");
for(i=0;i<N;i++)
printf("%d",a[i]);
putchar('
');
return;
}


冒泡排序呗。
void BubbleSort(int data[],int Length)
{
int i=0,j=0,temp;
int *p=data;
for(j=0;j<Length;j++)
{
for(i=0;i<Length-j-1;i++)
{
if(*(p+i)>*(p+i+1))
{
temp=*(p+i);
*(p+i)=*(p+i+1);
*(p+i+1)=temp;
}
}
}
}


旺苍县18289489377: c语言问题 编程要求将输入的四个数字按从小到大的顺序输出,,,要求使用数组实现只要过程,废话的闪 -
村景盐酸: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19#include<stdio.h> #define N 4 #define swap(integer1,integer2,tmp) {tmp=integer2;integer2=integer1;integer1=tmp;} voidmain(void) {inta[N];inttmp,i,j;printf("Input FOUR number: ");for(i=0;i<N;...

旺苍县18289489377: 用C语言编写程序,从键盘输入四个数,怎么求其最大值? -
村景盐酸: 代码如下:#include <stdio.h> void main() {float a,b,c,d,max;printf("请输入四位数字:\n");scanf("%f%f%f%f",&a,&b,&c,&d);max=a;if(max<b)max=b;if(max<c)max=c;if(max<d)max=d;printf("最大的数值为:%f\n",max); } 不知道帮没帮到你的忙 呵呵望采纳

旺苍县18289489377: c语言编程题:输入4个数,输出最大和最小的均值 -
村景盐酸: #include<stdio.h> #include<stdlib.h> 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++;...

旺苍县18289489377: 输入4个整数a,b,c,d,把这四个数由小到大输出(C语言编程) -
村景盐酸: #include"stdio.h" void main() { int a, b, c, d, t; printf("输入四个整数"); 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 (...

旺苍县18289489377: c语言:写一个程序,将4个从键盘输入的数按照从小到大的顺序输出 -
村景盐酸: #include "stdio.h"void select_sort(int *x, int n) {int i, j, min, t; for (i=0; i<n-1; i++) /*要选择的次数:0~n-2共n-1次*/{min = i; /*假设当前下标为i的数最小,比较后再调整*/for (j=i+1; j<n; j++)/*循环找出最小的数的下标是哪个*/{if (*(x+j) < *(...

旺苍县18289489377: C语言编程: 输入4个整数 -
村景盐酸: 这种容错能力肯定要通过字符串实现.将输入的串当作字符串,然后对字符串判断是否合法,合法就提取需要的数据,不合法提示.#include <stdio.h>void main() { int i; char st[255]; char *p; scanf("%s", st); p = st; while (*p++) {if (*p > '9' || *p < '0')printf("Invalid\n"); } }

旺苍县18289489377: 输入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; }

旺苍县18289489377: 任意输入4个整数,从大到小排列输出.c语言程序怎么写 -
村景盐酸: 任意输入4个整数,从大到小排列输出.c语言程序写法:main() {int a,b,c,d,m; scanf("%d %d %d %d",&a,&b,&c,&d); if(b>a) {m=a;a=b;b=m;} if(d>c) {m=c;c=d;d=m;} if(c>a) {m=a;a=c;c=m;} if(c>b); {m=b;b=c;c=m;}printf("\n%d %d %d %d\n",a,...

旺苍县18289489377: 用C程序语言编写:输入四个数,由小到大输出
村景盐酸: 楼上正解 #include<stdio.h> void Swap(int *x,int *y) { int t; t=*x; *x=*y; *y=t; } void main() { int a,b,c,d; puts("请输入四个整数:"); scanf("%d,%d,%d,%d",&a,&b,&c,&d); if(a>b) Swap(&a,&b); if(a>c) Swap(&a,&c); if(a>d) Swap(&a,&d); if(b>c) Swap(&b,&c); if(b>d) Swap(&b,&d); if(c>d) Swap(&c,&d); printf("%d<%d<%d<%d\n",a,b,c,d); }

旺苍县18289489377: C语言程序设计输入4个数字,要求由小到大顺序输出 -
村景盐酸: #include<stdio.h> void main() {int a[4],i,j,k;printf("please input four numbers:\n");for(i=0;i<4;i++)scanf("%d",&a[i]);printf("before Sorting the number is:\n");for(i=0;i<4;i++)printf("%d\t",a[i]);printf("\n");printf("after Sorting the ...

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