1. 程式人生 > >C語言實現 輸入數字按從小到大排序

C語言實現 輸入數字按從小到大排序

首先看最簡單的2個數的比較排序。

方法一:
最最簡單、直接的方法,利用比較。

#include <stdio.h>
int main()
{
    int x,y;
    int tem;
    printf("請輸入兩個數:\n");
    scanf("%d",&x);
    scanf("%d",&y);
    printf("x=%d\n",x);
    printf("y=%d\n",y);
    if(x>y)
    {
       tem=x;
       x=y;
       y=tem;
    }
    printf
("兩個數從小到大排序的結果為:\n"); printf("%d %d\n",x,y); return 0; }

方法二:
利用指標和函式呼叫實現。

#include <stdio.h>
void swap(int *a,int *b)
{
    int tmp;
    if(*a>*b)
    {
    tmp=*a;
    *a=*b;
    *b=tmp;
    }
}
main()
{
    int x,y;
    int *p_x,*p_y;
    printf("請輸入兩個數:\n");
    scanf("%d",&x
); scanf("%d",&y); printf("x=%d\n",x); printf("y=%d\n",y); p_x=&x; p_y=&y; swap(p_x,p_y); printf("兩個數從小到大排序的結果為:\n"); printf("x=%d\n",x); printf("y=%d\n",y); return 0; }

**

輸入任意數字進行排序

**
用冒泡法進行比較然後排序:

#include <stdio.h>

//氣泡排序,由低到高
int
main() { int a[100]; int temp; char c; int i, j,k=0; printf("輸入需要排序的數字:\n"); for(i=0; ;i++) { scanf("%d",&a[i]); k++; //統計輸入數字的個數 c=getchar(); //接受回車符判斷結束 if(c=='\n') break; } for (i = 1; i < k; i++) //氣泡排序 { for (j = 0; j < i; j++) { if (a[j] > a[j+1]) { temp = a[j]; a[j] = a[j+1]; a[j+1] = temp; } } } printf("從小到大排序後的結果為:\n"); for (i = 0; i < k; i++) { printf("%d ", a[i]); } printf("\n"); }

函式呼叫和指標共同實現:

#include <stdio.h>

   void order(int a[],int n)
{
    int i,t,j;
    for(i=1;i<n;i++)
        for(j=0;j<i;j++)
            if(*(a+j)>*(a+j+1))     /*判斷相鄰兩個元素的大小*/
            {
                t=*(a+j);
                *(a+j)=*(a+j+1);
                *(a+j+1)=t;  /*藉助中間變數t進行值互換*/
            }
            printf("排序後的陣列:");
            for(i=0;i<n;i++)
            {
                printf("%5d",*(a+i));   
            }

}

int main()
{
    int a[100],b,n=0;
    int *d;
    char c;
    printf("輸入數字:\n");
    d=a;
    for(b=0; ;b++)
    {
         scanf("%d",&a[b]);
         n++;
         c=getchar();
         if(c=='\n')
         break;
    }
    d=a;
    order(d,n);
}

相關推薦

C語言實現 輸入數字從小到大排序

首先看最簡單的2個數的比較排序。 方法一: 最最簡單、直接的方法,利用比較。 #include <stdio.h> int main() { int x,y; in

C語言實現輸入一個數,輸出這個數的立方根

#include<stdio.h> int main() { double x,x1,x2,w; scanf("%lf",&x); x1=x; x2=(2.0*x1+x/(x1*x1))/3.0; w=(x2-x1)/x1; if(w&

C語言實現輸入一個數,輸出這個數的sin值

#include<stdio.h> double shang(double x,int n) { int i; double k=1; for(i=0;i<n;i++) { k=k*x; } return k; } int

C語言實驗——輸入數字星期,輸出英文(switch語句)

#include<stdio.h> int main() { int n; scanf("%d",&n); switch(n) { case 1: printf(“Monday”); break; case 2: printf(“Tuesday”); break; c

[Trie樹] 統計英文文字中單詞出現的個數 - C語言實現 - 考慮數字、英文

【英文文字】 However, after reaching the shore there are plenty of challenges waiting for him."The biggest challenge now is learning to walk agai

c語言實現求數值的最值。

對於求10個整數中的最大值這類問題,具體分析和解決辦法如下。 第一類:給定一個具體的陣列求陣列中的最大值 程式1: #include<stdio.h> #include<stdlib.h> int main(){ int arr[10] = { 1, 2,

1119-C語言實驗——輸入數字星期,輸出英文(switch語句)-JAVA

C語言實驗——輸入數字星期,輸出英文(switch語句) Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 從鍵盤上輸

c語言實現輸入成績,輸出評分

方法一: #include <stdio.h> int main() { int a; printf("請輸入成績\n"); scanf("%d",&a); if(a>100||a<0) { printf("輸入錯誤

c語言實現輸入一個數,輸出這個數的sin的值

#include<stdio.h> double shang(double x,int n) { int i; double k=1; for(i=0;i<n;i++) { k=k*x;

C語言實現數字遊戲 全乾貨!

知識點:隨機數的生成: srand((unsigned)time(NULL)): srand函式是隨機數發生器的初始化函式。原型:void srand(unsigned seed); 用法:它初始化隨機種子,會提供一個種子,這個種子會對應一個隨機數,如果使用相同的種子後面的ran

C語言實現輸入的密碼與設定密碼進行比對,輸入密碼可以任意輸入

int checkPasswd( char *src,int src_length, char * target,int target_length){ int i,j;int isOk;//引數檢測

整數的四則運算(C語言實現)(2)——整數的加法和減法運算

斷斷續續調了好久個演算法的程式碼終於除錯好了,廢話不多說了,直接說思路,然後上程式碼。上一篇文章介紹了大整數的輸入的處理,包括接收方式、儲存方式、前導零的處理等內容。本文接著上一篇的內容。簡述大整數加減運算的思路。首先對於加法運算,存在以下四種情況:             

C語言實現輸入三角形兩邊邊長以及夾角求三角形第三邊邊長與面積

來源:大工慕課 連結 作者:Caleb Sung 解答示範 #include<stdio.h> #include<math.h> int main() { in

C++ 計166-1 C語言實驗——輸入數字星期,輸出英文

/*Description 從鍵盤上輸入數字星期,然後輸出它的英文: 其對應關係是 1 Monday 2 Tuesday 3 Wednesday 4 Thursday 5 Friday 6 Saturday 7 Sunday Input 從鍵盤輸入數字星期, Out

c語言實現輸入和為n的迴文數

#include<stdio.h> int main() { int a,b,c,d,e,f,n; scanf("%d",&n); if(1<=n<=54) { f

C語言輸入的一個字串進行排序

#include <stdlib.h> #include <stdio.h> #include<string.h> void main() { char s

C語言實現:將三個數到小輸出。

temp clas 實現 ima 編程 程序 c語言實現 從大到小 code 這個題目用編程來實現非常簡單,由於我在上一篇博客中已經介紹過使用“冒泡排序”的方法。 所以我在這裏直接給出使用“冒泡排序”寫出的代碼: #include<stdio.h> int m

輸入一串字元,並判斷其中英文字元和數字字元的個數——C語言實現C語言練習)

先看程式執行的結果,(文末有該程式的完整程式碼)   1、先寫好框架 #include<stdio.h> void main() { } 2、再定義所需要的變數 char str;//定義一個字元型變數 str int i=0,counte

C語言實現:將數組A中的內容和數組B中的內容進行交換(數組一樣)。

image pri 之前 es2017 sys 變量 ret 只需要 題目 之前我們已經完成了對兩個變量內容進行交換的程序,這兩道題目大同小異,不過是將兩數變成了兩數組。 可能我們會想:我們是不是需要第三個數組作為中間變量進行交換操作? 答案是no,我們只需要通過一個循環體

c語言實現層次(廣度優先)非遞歸遍歷二叉鏈樹

child str sizeof att col std 二叉樹 頭結點 oot 1 #include<stdio.h> 2 #include<conio.h> 4 #include<malloc.h> 5 typedef cha