C语言编程题,输入三个整数,按从大到小的顺序输出

C语言编程题,输入三个整数,按从大到小的顺序输出谢谢大佬们
2024-11-27 06:31:08
推荐回答(5个)
回答1:

#define _CRT_SECURE_NO_WARNINGS

#include<stdio.h>

int main(){

int a,b,c,t;

printf("请输入三个整数:\n");

scanf("%d,%d,%d",&a,&b,&c);

if(a<b){//完成a和b值的交换,a里面放最大值

t=a;

a=b;

b=t;

}

if(a<c){//完成a和c值的交换,a里面放最大值

t=a;

a=c;

c=t;

}

if(b<c){//完成b和c值的交换,a里面放最大值

t=b;

b=c;

c=t;

}

printf("%d\t%d\t%d\n",a,b,c);

return 0;

}

运行结果:

扩展资料:

return 0代表程序正常退出。return是C++预定义的语句,它提供了终止函数执行的一种方式。当return语句提供了一个值时,这个值就成为函数的返回值。

return语句用来结束循环,或返回一个函数的值。

1、return 0,说明程序正常退出,返回到主程序继续往下执行。

2、return 1,说明程序异常退出,返回主调函数来处理,继续往下执行。return 0或return 1对程序执行的顺序没有影响,只是大家习惯于使用return(0)退出子程序而已。

回答2:

#include

main() 

int x,y,z,t; 

scanf("%d%d%d",&x,&y,&z); 

if (x

{t=x;x=y;y=t;} 

if(x

{t=z;z=x;x=t;} 

if(y

{t=y;y=z;z=t;} 

printf("%d %d %d\n",x,y,z); 

}

扩展资料:

使用三元运算符,这个运算符会使程序进一步简化,而且看起来更加的直观。

它的一般形式如下:

表达式1? 表达式2:表达式3;

? 表达式的值是由 表达式1 决定的。如果 表达式1 为真,则计算表达式2 的值,结果即为整个 ? 表达式的值。如果 表达式1 为假,则计算 表达式3 的值,结果即为整个 ? 表达式的值。

程序如下:

#include

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语言

回答3:

参考代码:

#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

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

请按任意键继续. . .

回答4:

#include "stdio.h"
int main(int argc,char *argv[]){
int x,y,z;
printf("Please enter 3 integers...\n");
scanf("%d%d%d",&x,&y,&z);
if(x>y)
x^=y,y^=x,x^=y;
if(x>z)
x^=z,z^=x,x^=z;
if(y>z)
y^=z,z^=y,y^=z;
printf("\n%d %d %d\n",x,y,z);
return 0;
}

运行样例:

回答5:

路过这里,看了下,反正正好闲着,我也临时写下,并且编译一下,准确无误,每个必要的代码处我都加了解释,想必阁下是可以看懂的。希望对你有所帮助。

----------^--------------------------------^---------------------------------
#include
void sort(int array[],int n);
void main(){
int num[100];
int i;
int n=3;//其实如果你这里n不定义大小,再修改下代码可以比较N个数了。
printf("请输入三个整数(将会按照从大到小的顺序输出): \n");
//输入三个数字
for(i=0;i scanf("%d",&num[i]);
}
//调用sort函数
sort(num,n);
printf("按照从大到小的顺序输出: \n");
//输出排序后的数字
for(i=0;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 replace=i;
//第二个For用来在数组中遍历n-1前面的数字
for(j=i-1;j if(array[j] replace=j;
}
if(replace!=i){
swap=array[i];
array[i]=array[replace];
array[replace]=swap;
}
}
}
}
----------^--------------------------------^---------------------------------

经过Bcc5.5编译器编译,得出:

----------^--------------------------------^---------------------------------
请输入三个整数(将会按照从大到小的顺序输出):
20 40 30
按照从大到小的顺序输出:
40 30 20
请按任意键继续. . .
----------^--------------------------------^---------------------------------