1. 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;
}
2. C語言編程題:輸入4個整數,要求按由小到大順序輸出怎麼編啊
使用冒泡排序法進行編程:
解釋:
1.第一個for循環:利用數組循環輸入4個變數。
2.第二個for循環:該循環的意思是如果a[0]>a[1]的話,兩個變數的值交換,利用循環依次比較。要注意的是i<3,因為其中有i+1,i最大取到2,也就是i+1最大取到3才正確。
3.第三個for循環:利用循環依次輸出排序後的數組,每輸出一個加一個空格以便於區分。
(2)c語言四個數怎麼輸出擴展閱讀:
冒泡排序法,從數組頭部開始,不斷比較相鄰的兩個元素的大小,通過交換兩個元素的值使較大的元素逐漸往後移動,直到數組的末尾。
經過第一輪的比較,就可以找到最大的元素,並將它移動到最後一個位置。第一輪結束後,繼續第二輪。仍然從數組頭部開始比較,讓較大的元素逐漸往後移動,直到數組的倒數第二個元素為止。
經過第二輪的比較,就可以找到次大的元素,並將它放到倒數第二個位置。
以此類推,進行 n-1(n 為數組長度)輪「冒泡」後,就可以將所有的元素都排列好。
3. C語言中如何編 輸入4個數 輸出最大值和最小值
用數組來接收輸入的4個數
然後給數組排序
最後只需要輸出數組的第一個數和最後個數,具體代碼如下:
int i,j,tmp,num;
int str[4];
num=4;
printf("請輸入%d個整數:",num);//數
for(i=0;i<num;i++)
scanf("%d",&str[i]);
for(i=0;i<num-1;i++)//冒泡排序,從小到大
for(j=i+1;j<num;j++)
if(str[i]>str[j])
{tmp=str[i];str[i]=str[j];str[j]=tmp;}
printf("最小數:%d:\n",str[0]);//最小數
printf("最大數:%d:\n",str[3]);//最大數
4. c語言怎麼任意輸入4個數,然後將所有不同順序的這4個數輸出
採用遞歸的方法解決最好。
再提供一種初學者可以使用的方法,這個方法比較直接,容易理解:
#include<stdio.h>
voidmain()
{
inti,j,k,m,a[4];
for(i=0;i<4;i++)
scanf("%d",&a[i]);
printf(" 所有排列: ");
for(i=0;i<4;i++)
for(j=0;j<4;j++)
for(k=0;k<4;k++)
for(m=0;m<4;m++)
if(i!=j&&i!=k&&i!=m&&j!=k&&j!=m&&k!=m)
printf("%d%d%d%d ",a[i],a[j],a[k],a[m]);
}
運行示例:
5. c語言 輸入四個數,判斷最大值輸出
#include <stdio.h>
int main()
{int a, b, c, d, max;
scanf(「%d%d%d%d」, &a,&b,&c,&d);
max = a; //a先當第一任擂主
if(b > max) //如果b比擂主大,則b成為擂主,否則擂主不變
max = b;
if(c > max)
max = c;
if(d > max)
max = d;
printf(「%d
」, max);
getch();
return 0;
}
(5)c語言四個數怎麼輸出擴展閱讀:
JAVA得到數組中最大值和最小值的簡單實例
public class TestJava4_3
{
public static void main(String args[])
{
int i,min,max;
int A[]={74,48,30,17,62}; // 聲明整數數組A,並賦初值
min=max=A[0];
System.out.print("數組A的元素包括:");
for(i=0;i<A.length;i++)
{
System.out.print(A[i]+" ");
if(A[i]>max) // 判斷最大值
max=A[i];
if(A[i]<min) // 判斷最小值
min=A[i];
}
System.out.println(" 數組的最大值是:"+max); // 輸出最大值
System.out.println("數組的最小值是:"+min); // 輸出最小值
}
}
該程序輸出結果:
數組A的元素包括:74 48 30 17 62
數組的最大值是:74
數組的最小值是:17
6. 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、你這個選擇排序只是有個思路,距離編成程序還遠
7. c語言作業,輸出四個數A,B,C,D的全排列
#include<iostream>
#include<stdio.h>
#include<algorithm>
usingnamespacestd;
intmain()
{
intnum[4]={1,2,3,4};
do
{
printf("%c,%c,%c,%c ",num[0]+'A'-1,num[1]+'A'-1,num[2]+'A'-1,num[3]+'A'-1);
}while(next_permutation(num,num+4));
return0;
}
可以藉助於stl模板中的next_permutation函數,這個函數是按照字典序不停的取該序列的下一個序列,直到結束。然後輸出的時候講數字轉化為你要的字母即可。
例如 第一個序列是1,2,3,4,--》A,B,C,D
8. 任意輸入4個整數,從大到小排列輸出。c語言程序怎麼寫
個整數的排序,有使用單個變數和使用數組二種方法實現。
使用單個變數的方法:
#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;
}
9. C語言 輸入4個整數,要求按由小到大的順序輸出
if是可以沒有else的,這樣的情況下如果if的條件符合,則執行if語句,否則不執行,直接到下一個if。也就是說,如果a不大於b,也就是a小於b,那麼就像剛剛說的,不執行這個if就是了,計算機會往下閱讀程序,也就是去判斷下一個if,記住一句話「if條件不符合就不執行」。else只是相當於if不符合的話其他情況下執行什麼,如果沒有else,那就表示,if不符合,程序保持不動。
這個程序給你舉個實例講解也許你就明白了
假設輸入為1,3,4,2
1不大於3,第一個if不執行,目前順序為1,3,4,2
1不大於4,第二個if不執行,目前順序為1,3,4,2
1不大於2,第三個if不執行,目前順序為1,3,4,2
3不大於4,第四個if不執行,目前順序為1,3,4,2
3大於2,第五個if執行,實現交換,目前順序為1,2,4,3
4大於3,第六個if執行,實現交換,最後順序為1,2,3,4
其實你仔細想想,如果第一個if執行,實現交換,那麼第二個if中的a已經是交換過後的那個較小的數。第三個同理。也就是說,前3個if執行完以後確保了第1個數是4個數字中最小的,第四第五確保第二個數在剩下的3個數中是最小的(也就是4個數字中第二小的),第6個if確保第三個數小於第四個數。這樣子就實現了整個結構的排序。希望能幫到你。