12个回答
展开全部
三种方法,后两种适合3个数以上的情况
main()
{
int a, b, c;
scanf("%d%d%d", &a, &b,&c);
if(a<b)
{
a=a+b;
b=a-b;
a=a-b;
}
if(a<c)
{
a=a+c;
c=a-c;
a=a-c;
}
if(b<c)
{
b=b+c;
c=b-c;
c=b-c;
}
printf("%d %d %d",a,b,c);
}
起泡法对数组进行排序
main()
{
int a[3], i, j, t;
for(i=0; i<3; i++)
{
scanf("%d", &a[i]);
}
for(i=1; i<3; i++)
{
for(j=0; j<3-i; j++)
{
if(a[j]<a[j+1])
{
t=a[j];a[j]=a[j+1]; a[j+1]=t;
}
}
}
for(i=0; i<3; i++)
printf("%d\t", a[i]);
}
选择法对数组排序
main()
{
int a[3], i, j, k, t;
for(i=0; i<3; i++)
{
scanf("%d", &a[i]);
}
for(i=0; i<3; i++)
{
k=i;
for(j=i+1; j<3; j++)
{
if(a[k]<a[j]) k=j;
}
t=a[i]; a[i]=a[k]; a[k]=t;
}
for(i=0; i<3; i++)
printf("%d\t", a[i]);
}
main()
{
int a, b, c;
scanf("%d%d%d", &a, &b,&c);
if(a<b)
{
a=a+b;
b=a-b;
a=a-b;
}
if(a<c)
{
a=a+c;
c=a-c;
a=a-c;
}
if(b<c)
{
b=b+c;
c=b-c;
c=b-c;
}
printf("%d %d %d",a,b,c);
}
起泡法对数组进行排序
main()
{
int a[3], i, j, t;
for(i=0; i<3; i++)
{
scanf("%d", &a[i]);
}
for(i=1; i<3; i++)
{
for(j=0; j<3-i; j++)
{
if(a[j]<a[j+1])
{
t=a[j];a[j]=a[j+1]; a[j+1]=t;
}
}
}
for(i=0; i<3; i++)
printf("%d\t", a[i]);
}
选择法对数组排序
main()
{
int a[3], i, j, k, t;
for(i=0; i<3; i++)
{
scanf("%d", &a[i]);
}
for(i=0; i<3; i++)
{
k=i;
for(j=i+1; j<3; j++)
{
if(a[k]<a[j]) k=j;
}
t=a[i]; a[i]=a[k]; a[k]=t;
}
for(i=0; i<3; i++)
printf("%d\t", a[i]);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
路过这里,看了下,反正正好闲着,我也临时写下,并且编译一下,准确无误,每个必要的代码处我都加了解释,想必阁下是可以看懂的。希望对你有所帮助。
----------^--------------------------------^---------------------------------
#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
请按任意键继续.
.
.
----------^--------------------------------^---------------------------------
----------^--------------------------------^---------------------------------
#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
请按任意键继续.
.
.
----------^--------------------------------^---------------------------------
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#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语言
<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>
main()
{
int a[3];
int n=0,m;
int temp;
for( ;n<3;n++)
{
scanf("%d",&a[n]);
}
for(n=0;n<2;n++)
for(m=n+1;m<3;m++)
{
if(a[n]>a[n+1])
;
else
{
temp=a[n];
a[n]=a[n+1];
a[n+1]=temp;
}
}
for(n=0;n<3;n++)
printf("%d\t",a[n]);
}
看样子你是刚学C语言吧
main()
{
int a[3];
int n=0,m;
int temp;
for( ;n<3;n++)
{
scanf("%d",&a[n]);
}
for(n=0;n<2;n++)
for(m=n+1;m<3;m++)
{
if(a[n]>a[n+1])
;
else
{
temp=a[n];
a[n]=a[n+1];
a[n+1]=temp;
}
}
for(n=0;n<3;n++)
printf("%d\t",a[n]);
}
看样子你是刚学C语言吧
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include "stdio.h"
int main()
{
int a,b,c,t;
scanf("%d%d%d",&a,&b,&c);
if (b>a)
{
t=a,a=b,b=t;
}
if ((c>b)&&(c<a))
{
t=b,b=c,c=t;
}
if (c>a)
{
t=a,a=c,c=t;
t=b,b=c,c=t;
}
printf("大到小顺序为:%d,%d,%d\n",a,b,c);
return 0;
}
int main()
{
int a,b,c,t;
scanf("%d%d%d",&a,&b,&c);
if (b>a)
{
t=a,a=b,b=t;
}
if ((c>b)&&(c<a))
{
t=b,b=c,c=t;
}
if (c>a)
{
t=a,a=c,c=t;
t=b,b=c,c=t;
}
printf("大到小顺序为:%d,%d,%d\n",a,b,c);
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询