C语言编程 输入3个整数,按降序(从大到小的顺序)输出。

要求:
使用变量的指针作函数调用的实参来实现。
自定义exchange()函数:交换2个形参指针变量所指向的变量的值。
形参:2个,均为指向整型数据的指针变量。
函数返回值:无。

/*
输入三个整数(空格隔开) : 12 45 32
45 32 12
*/
#include <stdio.h>
void Exchange(int *a,int *b) {
int t = *a;
*a = *b;
*b = t;
}

int main() {
int a,b,c;
printf("输入三个整数(空格隔开) : ");
scanf("%d%d%d",&a,&b,&c);
if(a < b) Exchange(&a,&b); // 确保 a > b
if(a < c) Exchange(&a,&c); // 确保 a > b,a > c
if(b < c) Exchange(&b,&c); // 确保 a > b,b > c
printf("%d %d %d\n",a,b,c);
fflush(stdin);
getchar();
return 0;
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-12-20
#include<stdio.h>
void sort(int *p,int m) /*排序(从小到大)*/
{
int t;
for(int i=0;i<m-1;i++)
for(int j=0;j<m-1-i;j++)
if(p[j]>p[j+1])
{
t=p[j];
p[j]=p[j+1];
p[j+1]=t;
}
}

void input(int *a,int n) /* 输入值*/
{
for(int i=0;i<n;i++)
{
printf("%s","请输入");
printf("%d",i+1);
printf("%s\n","个数");
scanf("%d",&a[i]);
}
}
void show(int *a,int n) /* 输出值*/
{
printf("%s ","输出值");
for(int i=0;i<n;i++)
printf("%d ",a[i]);
printf("\n");
}
void main()
{
int p[3];
input(p,3); /*调用input()*/
sort(p,3); /*调用sort()*/
show(p,3); /*调用show()*/
}
第2个回答  推荐于2018-05-10
#include<stdio.h>
void exchange(int *x,int *y)
{
int temp;
temp=*x;
*x=*y;
*y=temp;
}
void main()
{
int a,b,c,temp;
printf("please input:");
scanf("%d,%d,%d",&a,&b,&c);
if(a>b)
exchange(&a,&b);
if(b>c)
exchange(&b,&c);
if( a>b)
exchange(&a,&b);
printf("result:%d,%d,%d", a,b,c );
}
第3个回答  2012-12-13
#include<stdio.h>
void exchange(int *pa, int *pb);
int main(void)
{
int a[3];
int i,j;
for (i = 0; i < 3; i++)
scanf("%d",&a[i]);
for (i = 0; i < 2; i++)
for (j = i+1; j < 3; j++)
if (a[i] < a[j])
exchange(&a[i],&a[j]);
for (i = 0; i < 3; i++)
printf(i? " %d":"%d",a[i]);
return 0;
}

void exchange(int *pa, int *pb)//用交换两个数
{
int t;
t = *pa;
*pa = *pb;
*pb = t;
return ;
}
第4个回答  2012-12-13
#include<stdio.h>
void exchange(int *a,int *b)
{
int temp;
temp=*a;
*a=*b;
*b=temp;

}
int main()
{
int a,b;
printf("Please input two integers:");
scanf("%d,%d",&a,&b);
printf("%d,%d\n",a,b);
exchange(&a,&b);
printf("%d,%d\n",a,b);
return 0;
}

C语言编程 输入3个整数,按降序(从大到小的顺序)输出。
int main() { int a,b,c;printf("输入三个整数(空格隔开) : ");scanf("%d%d%d",&a,&b,&c);if(a < b) Exchange(&a,&b); \/\/ 确保 a > b if(a < c) Exchange(&a,&c); \/\/ 确保 a > b,a > c if(b < c) Exchange(&b,&c); \/\/ 确保 a > b,b > c printf...

设置C语言程序,由键盘输入3个数,按降序将其输出
按照如下思路即可:1 定义三个元素的数组;2 输入三个数;3 对数组进行降序排序;4 输出数组。代码:int main(){ int a[3],i,j,t; for(i = 0; i < 3; i ++) scanf("%d",a+i); for(i = 0; i < 2; i ++) for(j = i+1; j < 3; j++) if(a[i...

c语言:3个数abc,按大小顺序输出
&c);if(a<b){t=a,a=b,b=t;}if(a<c){t=a,a=c,c=t;}if(b<c){t=b, b=c, c=t;}printf("%d %d %d\\n",a,b,c);return 0;}原理就是运用冒泡算法,把最大的数浮在最上面,而小的数就下沉,最后就输出。

c语言中三个数知道最大和最小,如何降序排列
int main(){ int a,b,c,MAX,MIN;MAX = a>b ? a : b MAX = MAX>c ? MAX : c MIN = a<b ? a : b MIN = MAX<c ? MIN : c printf("%d %d %d",MAX,a+b+c-MAX-MIN,MIN);} 望采纳,谢谢

C语言3个数比较大小!
输入三个数(空格隔开),先比较前两个数大小,将较大的数赋值给Max,再比较Max与第三个数大小,输出较大的数按降序输出:include <stdio.h>void main(){int a,b,c,max_ab,min_ab;scanf("%d %d %d",&a,&b,&c);if (a<=b){max_ab = b;min_ab = a;}else{max_ab = a;min_...

C语言问题编程问题?
printf("请输入学生%d分数:",i+1);printf("%d名学生的平均分为%.1f\\n",n,sum\/i);for(i=0,printf("开始降序排序\\n");i<n-1;i++)for(j=i+1;j<n;j++)if(scores[i]<scores[j])temp=scores[i],scores[i]=scores[j],scores[j]=temp;for(i=0,printf("排序后的分数为:\\n"...

C语言从键盘上输入4个整数按降序(从大到小的顺序)输出
main(){ int x,y,z,h,t;scanf("%d%d%d",&x,&y,&z,&h);if (x<y){t=x;x=y;y=t;} \/*交换x,y的值*\/ if(x<z){t=z;z=x;x=t;}\/*交换x,z的值*\/ if(y<z){t=y;y=z;z=t;}\/*交换z,y的值*\/ if(z<h){t=z;z=h;h=t;}\/*交换z,h的值*\/ printf("small...

c语言编程:要求从键盘输入一批整数(不超过100个),对其从大到小排序...
{int a[100],n,i,j,t;scanf("%d",&n);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]);printf("\\n");return 0;...

C语言有一个有序整数数组,要求用户依次输入三个整数,将这三个整数插入...
首先必须明确这个有序数组是升序还是降序的。然后编写一个有序插入函数。在主函数中三次读入整数,并调用插入函数就可以实现这个功能。void insert(int a[],int*n,int x)\/\/在有n个元素的升序数组a中插入元素x {int i;for(i=n-1;i>=0&&a[i]>x;i--)a[i+1]=a[i];a[i+1]=x;(*n...

C语言,程序设计 输入4个整数,要求按由小到大的顺序输出 怎么做啊...
\/\/若要以降序顺序排列,则只需将 if(array[j]>array[j+1])语句中的大于号改为小于号即可。\/\/程序如下:#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...

相似回答