#include <stdio.h>
main()
{
int x,y,z,t;
scanf("%d%d%d",&x,&y,&z);
if (x<y)
{t=x;x=y;y=t;}
if(x<z)
{t=z;z=x;x=t;}
if(y<z)
{t=y;y=z;z=t;}
printf("%d %d %d\n",x,y,z);
}
扩展资料:
使用三元运算符,这个运算符会使程序进一步简化,而且看起来更加的直观。
它的一般形式如下:
表达式1? 表达式2:表达式3;
? 表达式的值是由 表达式1 决定的。如果 表达式1 为真,则计算表达式2 的值,结果即为整个 ? 表达式的值。如果 表达式1 为假,则计算 表达式3 的值,结果即为整个 ? 表达式的值。
程序如下:
#include<stdio.h>
int main()
{
int max;
int a,b,c;
printf("请输入三个数:");
scanf("%d %d %d",11&a,&b,&c);
max=a>b?a:b;
max=c>max?c:max;
printf("Max is %d",max);
return 0;
}
参考资料来源:百度百科-C语言
参考代码:
#include "stdio.h"
int main()
{
int x,y,z,max,min;
scanf("%d%d%d",&x,&y,&z);
if(x>y){
max=x;
min=y;
}
if(z>max) max=z;
if(min>z) min=z;
y=x+y+z-max-min;
x=max;
z=min;
printf("从大到小排序:%d %d %d\n",x,y,z);
}
/*
运行结果:
3 1 2
从大到小排序:3 2 1
*/
扩展资料
利用指针变量,用函数实现将3个整数按从大到小的顺序输出。
解:程序:
#include<stdio.h>
void swap(int *ptr1, int *ptr2)
{
int temp = *ptr1;
*ptr1 = *ptr2;
*ptr2 = temp;
}
void exchange(int *q1, int *q2,int *q3)
{
void swap(int *ptr1, int *ptr2);
if (*q1 < *q2)
{
swap(q1, q2);
}
if (*q1 < *q3)
{
swap(q1, q3);
}
if (*q2 < *q3)
{
swap(q2, q3);
}
}
int main()
{
void exchange(int *q1, int *q2, int *q3);
int *p1, *p2, *p3, a, b,c;
printf("please enter three integer numbers:");
scanf("%d,%d,%d",&a,&b,&c);
p1 = &a;
p2 = &b;
p3 = &c;
exchange(p1, p2, p3);
printf("The order is:%d,%d,%d\n",a,b,c);
return 0;
}
结果:
please enter three integer numbers:7,-9,666
The order is:666,7,-9
请按任意键继续. . .
推荐于2017-09-10 · 知道合伙人教育行家
问题:输入三个数x,y,z,把其中的最大值赋值给x,中间赋值给y,最小值赋值给z。
参考代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | #include "stdio.h" int main() { int x,y,z,max,min; scanf ( "%d%d%d" ,&x,&y,&z); if (x>y){ max=x; min=y; } if (z>max) max=z; if (min>z) min=z; y=x+y+z-max-min; x=max; z=min; printf ( "从大到小排序:%d %d %d\n" ,x,y,z); } /* 运行结果: 3 1 2 从大到小排序:3 2 1 */ |
----------^--------------------------------^---------------------------------
#include<stdio.h>
void sort(int array[],int n);
void main(){
int num[100];
int i;
int n=3;//其实如果你这里n不定义大小,再修改下代码可以比较N个数了。
printf("请输入三个整数(将会按照从大到小的顺序输出): \n");
//输入三个数字
for(i=0;i<n;i++){
scanf("%d",&num[i]);
}
//调用sort函数
sort(num,n);
printf("按照从大到小的顺序输出: \n");
//输出排序后的数字
for(i=0;i<n;i++){
printf("%d \t",num[i]);
}
printf("\n");
}
void sort(int array[],int n){
int i,j;// 定义用于For循环用的
int replace,swap;//定义用来调用i和交换数字的变量
/*
下面的有点繁杂,其实稍微看下,就是用来从遍历数组中的数字(通过For循环来遍历),
从中随便选取两个数字,然后比较,如果前一个数字小于后一个数字,则通过变量swap
交换出来。
*/
//第一个For用来在数组中遍历n-1个数字
for(i=1;i<n;i++){
replace=i;
//第二个For用来在数组中遍历n-1前面的数字
for(j=i-1;j<n-1;j++){
if(array[j]<array[replace]){
replace=j;
}
if(replace!=i){
swap=array[i];
array[i]=array[replace];
array[replace]=swap;
}
}
}
}
----------^--------------------------------^---------------------------------
经过Bcc5.5编译器编译,得出:
----------^--------------------------------^---------------------------------
请输入三个整数(将会按照从大到小的顺序输出):
20 40 30
按照从大到小的顺序输出:
40 30 20
请按任意键继续. . .
----------^--------------------------------^---------------------------------