‘壹’ c语言 将4个数从小到大输出
额
如果a>b那么
a、b
换位
也就是
大的变成小的
但是如果说a<=b
那么
小的还是小的
大的还是大的
同理
下面的都是这意思
结果就是
小的一定会被变成最前面的
大的一定会到最后面
其原理就是:
如果a比b
c都要小那么a还是a
如果a比b
c
中任何一个大(就比如是c)那么
a
c
会换位
又因为三个数据
所以只有以下大小顺序可能
:a>b>c
a>c>b
c>a>b
c>b>a
b>a>c
b>c>a
我们可以知道
不论如何最小的都会
因为比别的小而负值给a
因为这只有三个数比较
所以这种方法可行
但是如果数据多些就不行了
‘贰’ C语言怎么实现输入四个数abcd按从大到小输出
个整数的排序,有使用单个变量和使用数组二种方法实现。
使用单个变量的方法:
#include<stdio.h>
int main()
{int a,b,c,d,t;
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(b>d){t=b;b=d;d=t;}
if(c>d){t=c;c=d;d=t;}
printf("%d %d %d %d\n",a,b,c,d);
return 0;
}
使用数组和循环的方法:
#include<stdio.h>
int main()
{int a[4],i,j,t;
for(i=0;i<4;i++) //读入4个数据
scanf("%d",&a[i]);
for(i=0;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<4;i++) //输出4个数据
printf("%d ",a[i]);
printf("\n");
return 0;
}
‘叁’ c语言编程 输入4个整数,要求由小到大输出
道理都是一样的,再多就可以用循环了,不过4个数用循环不太爽~~,看下面的冒泡排序非循环4个数的实现呵呵:
#include
int
main(char*
x
,char**
y)
{
int
temp,a,b,c,d;
printf("please
input
num
list:");
scanf("%d,%d,%d,%d",&a,&b,&c,&d);
if(a>b)
{temp=a;
a=b;
b=temp;}
if(a>c)
{temp=a;
a=c;
c=temp;}
if(a>d)
{temp=a;
a=d;
d=temp;}
if(b>c)
{temp=a;
b=c;
c=temp;}
if(b>d)
{temp=b;
b=d;
d=temp;}
if(c>d)
{temp=c;
c=d;
d=temp;}
printf("the
sort
is
:\n");
printf("%d,
%d,
%d,
%d\n",a,b,c,d);
return
0;
}
‘肆’ c语言 随便输入四个数字,要求从小到大输出
if(a>b)
tt(&a,&b);
<--------
结束之后
必然是
a<b
if(b>c)
tt(&b,&c);
<--------
结束之后
必然是
b<c
同时,
a<c
if(a>c)
tt(&a,&c);
<--------
这里应该是if(a>b)
tt(&a,&b);吧,
因为这个时候只要保证
a
和
b
的大小关系正确就好了
‘伍’ c语言输入4个数,按从小到大输出
说实在的,程序写的确实比较差。
改这个程序比较麻烦,我猜测的你的原意
#include<stdio.h>
void
main()
{
int
a[4],b[4];
int
i,j,n,sum;
for(n=0;n<=3;n++)scanf("%d",&a[n]);
for(i=0;i<=3;i++){
sum=(a[i]>a[0])+(a[i]>a[1])+(a[i]>a[2])+(a[i]>a[3]);
if(sum==3)b[3]=a[i];
else
if(sum==2)b[2]=a[i];
else
if(sum==1)b[1]=a[i];
else
b[0]=a[i];
}
for(j=0;j<=3;j++)
printf("%d\n",b[j]);
}
不过问题比较多:
1、第二个for丢失了大括号(建议无论是否需要都先打上,以防忘记)
2、
if(sum=3)a[3]=a[i];
else
if(sum=2)a[2]=a[i];
else
if(sum=1)a[1]=a[i];
else
a[0]=a[i];
这个sum=3等应当写成sum==3
而且就这个,直接a[sum]=a[i]不是一样吗?
3、你要是修改了a[i]的值后面就错了,所以我给你添了b[4]
4、你没有考虑可以存在两个数或者多个数相同的情况。
5、你这个选择排序只是有个思路,距离编成程序还远
‘陆’ C语言编程,从键盘输入四个整数,按照数值从小到大顺序输出
源代码如下:
#include<stdio.h>
intmain()
{
intnum[4];
for(inti=0;i<4;i++){
scanf("%d",num+i);
}
for(inti=0;i<4;i++){
intk=i;
for(intj=i+1;j<4;j++){
if(num[k]>num[j]){
k=j;
}
}
if(k!=i){
inttemp=num[k];
num[k]=num[i];
num[i]=temp;
}
for(inti=0;i<4;i++){
printf("%d",num[i]);
}
return0;
}
(6)c语言怎么从小到大输出四位数扩展阅读
输入5个数,按从小到大顺序输出的源代码如下:
#include<stdio.h>
void main()
{
int a[5];
int i,j,t;
printf("请输入5个数:");
for(i=0;i<5;i++)
scanf("%d",&a[i]);
printf(" ");
for(j=0;j<4;j++)
for(i=0;i<4-j;i++)
if(a[i]>a[i+1])
{
t=a[i];
a[i]=a[i+1];
a[i+1]=t;
}
printf("排序后的数据为:");
for(i=0;i<5;i++)
printf("%d ",a[i]);
printf(" ");
}
‘柒’ C语言简单程序:输入四个数,按从小到大顺序输出
你好,你的代码有两处错误:首先定义数组时长度过小,你要对4个数排序所以数组的长度至少要为4。
其次你对四个整数排序的算法错误,建议用冒泡法进行排序。下面是我在你的代码基础上改进过后的代码,在改动处我已作了注释,希望对你有帮助!
#include"stdio.h"
void
main()
{int
a[4],i,j,t;
//数组长度为4!//printf("输入四个整数:");for(i=0;i<4;i++)scanf("%d",&a[i]);for(i=0;i<4;i++)printf("%d
",a[i]);printf("\n");for(i=0;i<3;i++)
{for(j=i+1;j<4;j++)
//注意此处的排序算法//if(a[i]>a[j]){t=a[j];a[j]=a[i];a[i]=t;}
}
for(i=0;i<4;i++)
printf("%d
",a[i]);
printf("\n");
}
‘捌’ C语言编程题:输入4个整数,要求按由小到大顺序输出怎么编啊
使用冒泡排序法进行编程:
解释:
1.第一个for循环:利用数组循环输入4个变量。
2.第二个for循环:该循环的意思是如果a[0]>a[1]的话,两个变量的值交换,利用循环依次比较。要注意的是i<3,因为其中有i+1,i最大取到2,也就是i+1最大取到3才正确。
3.第三个for循环:利用循环依次输出排序后的数组,每输出一个加一个空格以便于区分。
(8)c语言怎么从小到大输出四位数扩展阅读:
冒泡排序法,从数组头部开始,不断比较相邻的两个元素的大小,通过交换两个元素的值使较大的元素逐渐往后移动,直到数组的末尾。
经过第一轮的比较,就可以找到最大的元素,并将它移动到最后一个位置。第一轮结束后,继续第二轮。仍然从数组头部开始比较,让较大的元素逐渐往后移动,直到数组的倒数第二个元素为止。
经过第二轮的比较,就可以找到次大的元素,并将它放到倒数第二个位置。
以此类推,进行 n-1(n 为数组长度)轮“冒泡”后,就可以将所有的元素都排列好。
‘玖’ c语言编程用循环语句输入四个数 要求这四个数由从小到大输出
#include<stdio.h>
intmain()
{
inta[4];//数组存储数据
inti,j;
for(i=0;i<4;i++)//循环输入
scanf("%d",&a[i]);
for(i=0;i<3;i++)//排序
for(j=i+1;j<4;j++)
if(a[i]>a[j])
{
intt=a[i];
a[i]=a[j];
a[j]=t;
}
for(i=0;i<4;i++)//循环输出
printf("%d",a[i]);
printf(" ");
return0;
}
‘拾’ 输入4个整数,按从小到大输出这四个数 用c语言
int main()
{
int i,j,temp;
int a[4];
for(i=0;i<4;i++)
scanf("%d",&a[i]);
for(i=0;i<4;i++)
for(j=i+1;j<4;j++)
{if(a[i]>a[j]){
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
for(i=0;i<4;i++)
printf("%d\t",a[i]);
return 0;
}