1. c語言:輸入四個正整數按從大到小排序,用冒泡排序方法,書上沒有詳細過程,老師沒講,盡量用簡單的方法
#include<stdio.h>
intmain()
{
inta[4],i,j,t;
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])
{
t=a[i];
a[i]=a[j];
a[j]=t;
}
}
for(i=0;i<4;i++)
printf("%d",a[i]);
}
這是最簡單的冒泡排序把,利用雙for循環完成的。這個代碼的意思是,將數字存入到一個數組中,然後用數組的第一個元素一次後面的元素比較,如果後面的元素大於第一個元素,那麼就和第一個元素對調。這樣最大的個元素會移動到第一個元素的位置上。然後用數組的第二個元素同樣的方法進行比較和交換。最終完成從大到小的排序。
外面的for循環的作用是確定用來比較的基數的、。第一循環時,它確定的比較基數就是第一個元素,以此類推。裡面的循環的作用是將基數和後面的元素比較,如果後面的元素小於的基數,那麼和基數互相對調。
2. 請問怎麼用C語言把一個正整數的每一位從大到小重新排列啊
用個數組保存數字的每位數,然後對數組排序…將數字的每位數取出來的演算法為%10,/10
3. C語言如何輸入十個數,按從大到小順序排列!
用選擇排序法編寫c語言,實現從鍵盤上輸入10個數,按從大到小的順序排序輸出。代碼如下:
#include<stdio.h>
int main()
{
int i,j,a[10],t;
printf("輸入數");
for (i = 0; i < 10; i++)
scanf("%d",&a[i]);
for (i = 0; i < 10; i++)
{
for (j = i + 1; j < 10;j++)
if (a[i] < a[j]){
t = a[i];
a[i] = a[j];
a[j] = t;
}
}
printf("從大到小");
for (i = 0; i < 10; i++)
printf("%2d", a[i]);
return 0;
}
(3)正整數從大到小排序c語言擴展閱讀:
代碼還可以設計,如下:
#include<stdio.h>
int main()
{
int a[10],i,j,t;//定義數組;
for(i=0;i<10;i++){
scanf("%d",&a[i]);//給數組賦值;
}
for(i=0;i<9;i++)//10個數,進行9輪比較;
for(j=0;j<10-i;j++){//第一個數比較9次,依次遞減;
if(a[j]>a[j+1]) {//交換值;
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
for(i=0;i<10;i++){
printf("%d ",a[i]);//輸出數組的值;
}
return 0;
}
}
printf("the sorted numbers: ");
for(i=0;i<10;i++)
printf(" %d",a[i]);
printf(" ");
}
4. C語言的編程題:輸入三個整數,按從大到小的順序輸出
#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 ",x,y,z);
}
(4)正整數從大到小排序c語言擴展閱讀:
使用三元運算符,這個運算符會使程序進一步簡化,而且看起來更加的直觀。
它的一般形式如下:
表達式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;
}
5. c語言 輸入十個整數,從大到小排序,並輸出來。求解題思路
冒泡排序:
#include<stdio.h>
int main()
{ int a[10];
int i,j,t;
printf("input 10 numbers: ");
for(i=0;i<10;i++)
scanf("%d",&a[i]);//輸入10個數值
printf(" ");
for(j=0;j<9;j++) //進行9輪比較
for(i=0;i<9-j;i++) //每一輪中進行9-j次比較
if(a[i]<a[i+1]) //相鄰兩個數比較
{t=a[i];a[i]=a[i+1];a[i+1]=t;}
printf("output 10 numbers: ");
for(i=0;i<10;i++)
printf("%d ",a[i]); //按順序輸出10個數值
printf(" ");
return 0;
}
當然很多行可以省掉。只是這樣更清楚。
6. 輸入4個整數,要求從大到小排列(用C語言的IF語句)
就是冒泡演算法咯:
把序列底部的數字跟上面的數字依次比較,如果比上面的大就把他們交換位置,直到比上面的小為止,這樣把每個數字都這樣弄一次數列就按順序排好了。
void main()
{
int a[3];
int i,temp;
for(i=0;i<4;i++)
{
scanf("%d",&a[i]);
}
for(i=0;i<4;i++)
{
int j;
for(j=0;j<=4-i;j++)
{
if(a[j]>a[j+1])
{
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
for(i=0;i<4;i++)
{
printf("%d",a[i]);
}
}
7. C語言~十個數字從小到大怎麼排列~從大到小呢~
//要求任意輸入10個數,然後按從小到大順序輸出
#include <stdio.h>
int main()
{
int a[10];
int i,j;
int temp;
printf("請輸入10個整數:");
for(i=0;i<10;i++)
{
scanf("%d",&a[i]);
}
for(i=0;i<9;i++)
{
for(j=0;j<9-i;j++)
{
if(a[j]>a[j+1])
{
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
printf("排列後順序為:");
for(i=0;i<10;i++)
{
printf("%d ",a[i]);
}
printf("
");
return 0;
}
8. C語言用選擇法對10個整數按從大到小排序怎麼做
#include<stdio.h>//標准輸入輸出函數調用需要此頭文件、就是那個printf和scanf函數要用的
void main()//主函數
{int i,j,min,temp,a[10];
printf("請輸入:\n"); //屏幕輸出引號內的字元然後換行
for(i=1;i<=10;i++) //從鍵盤上循環輸入10個數據
{printf("a[%d]=",i);
scanf("%d",&a[i]);} //讀取數據函數
printf("\n"); //換行
for(i=1;i<=9;i++) //比較10個數據
{min=i; //每次比較的最小數據賦給min
for(j=i+1;j<=10;j++) //比較循環控制
if (a[min]>a[j]) min=j; //大小數值判斷
temp=a[i];
a[i]=a[min]; //a[i]里存放的最小數值
a[min]=temp;}
printf("\n從大到小排列是:\n"); //輸出字元
for(i=10;i>=1;i--) //循環輸出按大小排列的數據
printf("%5d",a[i]);
printf("\n");//每輸出一個數據換行
}
9. C語言,輸入三個整數,按從大到小的順序輸出
#include"stdio.h"
intmain(intargc,char*argv[]){
intx,y,z;
printf("Pleaseenter3integers... ");
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(" %d%d%d ",x,y,z);
return0;
}
運行樣例:
10. 輸入10個整數按照由大到小的順序如何輸出C語言編寫
#include <stdio.h>
#define NUM 10
void main()
{
int i,j,k,a[NUM];
printf("請輸入10個數字進行從大到小的排序:");
for(i=0;i<NUM;i++)
{
scanf("%d",&a[i]);
}
for(i=0;i<NUM;i++)
{
for(j=0;j<NUM;j++)
{
if(a[i]>a[j])
{
k=a[i];
a[i]=a[j];
a[j]=k;
}
}
}
for(i=0;i<NUM;i++)
{
printf("%d",a[i]);
}
}