如何用函式實現數的排序(用的是C語言)

時間 2021-08-30 11:02:44

1樓:貌似風輕

一:全域性變數

#include

int a,b,c;  //定義三個全域性變數void sort()  //不需要引數

if(b>c)

if(a>b)

}int main()

二:指標

#include

void sort(int *a, int *b, int *c) //引數傳遞方式:地址傳遞

if(*b>*c)

if(*a>*b)

}int main()

2樓:雙槍老椰子

呼叫子函式交換主函式裡變數的值,需要傳遞指標#include

void sort(float *a,float *b,float *c)

if(*a>*c)

if(*b>*c)

}void main()

3樓:

void change(int* a,int *b)

呼叫函式確實不能修改原引數的值,其實質是拷貝了一份實參給形參,在這種情況下,c語言是用指向實參的指標來修改實參的,c++可以還用引用,就是第一個回答你問題的那個方法。你說書上說可以用全域性變數,這個當然可以,但是,絕不推薦用全域性變數或者靜態變數,這是一個很不好的程式設計習慣!望採納

4樓:潮凝安

這個太簡單了 。。1樓用的是引用 你也可以用指標。。。

void swap(int *a,int *b)void mysort(int *a,int *b,int *c)#include

void twosort(int *a,int *b)}

5樓:匿名使用者

dhgfhftufhjtgfhgffdf

6樓:

#include "stdio.h"

void mysort(int *pa,int *pb,int *pc);

for(i=0;i<3;i++)

}*pa=a[0];

*pb=a[1];

*pc=a[2];

} }void main(void)

c語言:編寫一個函式名字為sort,完成對三個整數從小到大排序,要求用指標實現。

7樓:風若遠去何人留

#include

int sort(int *a,int *b,int *c)if(*a>*c)

if(*b>*c)

printf("這個三個數從小到大排列是:%d,%d,%d\n",a,b,c);

}void main()

好好學學指標吧

8樓:匿名使用者

修改通過了:

#include

void sort(int *a,int *b,int *c)if(*a>*c)

if(*b>*c)

printf("這個三個數從小到大排列是:%d,%d,%d\n",*a,*b,*c);

}void main()

c語言sort函式如何使用

9樓:demon陌

c語言中沒有預置的sort函式。如果在c語言中,遇到有呼叫sort函式,就是自定義的一個函式,功能一般用於排序。

一、可以編寫自己的sort函式。

如下函式為將整型陣列從小到大排序。

void sort(int *a, int l)//a為陣列地址,l為陣列長度。

}}對於這樣的自定義sort函式,可以按照定義的規範來呼叫。

二、c語言有自有的qsort函式。

功 能: 使用快速排序例程進行排序

標頭檔案:stdlib.h

原型: void qsort(void *base,int nelem,int width,int (*fcmp)(const void *,const void *));

引數:1 待排序陣列首地址

2 陣列中待排序元素數量

3 各元素的佔用空間大小

4 指向函式的指標,用於確定排序的順序

這個函式必須要自己寫比較函式,即使要排序的元素是int,float一類的c語言基礎型別。

以下是qsort的一個例子:

#include

#include

int comp(const void*a,const void*b)//用來做比較的函式。

int main()

;//亂序的陣列。

int i;

qsort(a,n,sizeof(int),comp);//呼叫qsort排序

for(i=0;i<10;i++)//輸出排序後的陣列

擴充套件資料:

sort函式的用法(c++排序庫函式的呼叫)

對陣列進行排序,在c++中有庫函式幫我們實現,這們就不需要我們自己來程式設計進行排序了。

(一)為什麼要用c++標準庫裡的排序函式

sort()函式是c++一種排序方法之一,學會了這種方法也打消我學習c++以來使用的氣泡排序和選擇排序所帶來的執行效率不高的問題!因為它使用的排序方法是類似於快排的方法,時間複雜度為n*log2(n),執行效率較高!

(二)c++標準庫裡的排序函式的使用方法

i)sort函式包含在標頭檔案為#include的c++標準庫中,呼叫標準庫裡的排序方法可以不必知道其內部是如何實現的,只要出現我們想要的結果即可!

ii)sort函式有三個引數:

(1)第一個是要排序的陣列的起始地址。

(2)第二個是結束的地址(最後一位要排序的地址的下一地址)

(3)第三個引數是排序的方法,可以是從大到小也可是從小到大,還可以不寫第三個引數,此時預設的排序方法是從小到大排序。

sort函式使用模板:

sort(start,end,排序方法)

下面就具體使用sort()函式結合對陣列裡的十個數進行排序做一個說明!

例一:sort函式沒有第三個引數,實現的是從小到大

#include

#include

using namespace std;

int main()

;for(int i=0;i<10;i++)

cout

for(int i=0;i<10;i++)

cout

}編譯器

gcc,gnu組織開發的開源免費的編譯器

mingw,windows作業系統下的gcc

clang,開源的bsd協議的基於llvm的編譯器

visual c++ :: cl.exe,microsoft vc++自帶的編譯器

整合開發環境

codeblocks,開源免費的c/c++ ide

codelite,開源、跨平臺的c/c++整合開發環境

orwell dev-c++,可移植的c/c++ide

c-free

light table

visual studio系列

hello world

10樓:憂鬱與陽光的

標頭檔案是#include

比如說陣列a[5]=;

當你用sort(a,a+5)時,就把陣列a從小到大排序了for(i=0;i<5;i++)

輸出為1 2 3 4 5

這樣說能理解嗎

11樓:義柏廠

c語言sort函式如何使用,這個使用一般都會有一個使用的說明書的,具體的這個我也這邊也不太瞭解,你自己按照說明書上使用就可以了吧,認真的把說明書解讀,也只能這樣幫你,我實在沒辦法。

12樓:258天啥抖

c語言sort函式如何使用 開啟手機找到胡會祥就可以找到

編寫程式用函式實現對10個整數的氣泡排序(c語言)

13樓:匿名使用者

#include

#define n 10

//定義排

du序函式

zhidao

void sort(int arr,int n)for(i=0;i專結果屬:\n");

//呼叫排序函式

sort(a,n);}

14樓:匿名使用者

#include

void main()

printf("the sorted numbers :\n");

for(i=0;i<10;i++)

printf("%d ",a[i]);

printf("\n"); getch();}

15樓:匿名使用者

#include

int main()

}printf("操作

容資料:\n");

for(i=0;i<10;i++)

printf("%d ",a[i]);

return 0;}

C語言輸入數按由小到大排序函式呼叫的方法

程式改為下面,輸入三個數用英文逗號分開。如 3,2,1 include void swap int a,int b int main 第一個錯誤,swap函式你定義為有int返回值,但卻沒有return語句 第二個錯誤,你的swap函式實際上只是對形參做交換,對實際的數卻不作交 只有swap函式傳遞...

C語言如何求導函式,用C語言如何編寫函式的求導

用差分計算,當自變數趨於0時,前後兩次差分收斂到需要精度,計算結束。例如,一階導數,寫乙個 函式 y f x float f float x 設 dx 初值。計算 dydy f x0 f x0 dx 導數 初值。dd1 dy dx lab dx dx 減小步長dy f x0 f x0 dx dd2 ...

用函式極限的定義證明,如何用函式極限的定義證明

塵希黛兒 x定義,分析 欲使 3x 1 x 4 3 13 x 4 成立,13 x 4 13 x 僅需13 x 解得 x 13 證明 對於任意 0,取x 13 當 x x時,x 13 13 x 3x 1 x 4 3 13 x 4 13 x lim 3x 1 x 4 3 1 令f x 2x 3 3x,由...