『壹』 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;
}