1樓:
//程式改為下面,輸入三個數用英文逗號分開。如:3,2,1#include
2樓:匿名使用者
第一個錯誤,swap函式你定義為有int返回值,但卻沒有return語句
第二個錯誤,你的swap函式實際上只是對形參做交換,對實際的數卻不作交
只有swap函式傳遞數的地址時(引用),才能對數進行真正交換swap函式定義如下:
void swap(int &a, int &b)
3樓:匿名使用者
因為值的交換在函式裡面,交換是無效的,需要用地址的交換#include
int swap(int *a, int *b)int main()
4樓:許詩文
#include
mian()
int f(int *pointer1,int *pointer2,int *pointer3)
int change(int *po1,int *po2)
5樓:倒黴熊
#include
void swap(int *a, int *b) //這裡需要傳地址,值都是單向的。
int main()
c語言:輸入5個數,用呼叫函式的方法,從小到大排序 用簡單點的
6樓:風翼殘念
#include
void sort(float *a, int n)
int i,j,tmp;
for(i=0; ifor(j=0; jif(a[j]>a[j+1])
tmp = a[j];
a[j] = a[j+1];
a[j+1] = tmp;
}void main()
float a[5];
int i;
printf("請輸入五個數(逗號隔開):");
sort(a,5);
printf("排序後為:");
for(i=0; i<5; i++)
printf("%.2f ",a[i]);
printf("\n");
或者三個數的。
void sort(int *a, int *b, int *c)
int tmp;
if(*a>*b)
對於這樣的自定義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語言基礎型別。
7樓:小周愛嘮叨
1、在開頭處定義了兩個指標變數point_1和point_2。但此時他們並未指向任何一個變數,只是提供兩個指標變數,規定他們可以指向整形變數,至於指向哪一個整形變數,要在程式語句中指定。程式第6,7兩行的作用就是使point_1指向a,point_2指向b,此時point_1的值為&a(即a的地址),point_2的值為&b。
2、第10行輸出*point_1和*point_2的值,其中的「*」表示「指向」。*point_1表示「指標變數point_1所指向的變數」,也就是變數a。*point_2表示「指標變數point_2所指向的變數」,也就是變數b。
從執行結果來看他們也就是100和10.
3、程式中有兩處出現*point_1和*point_2,但是兩者含義不同。程式第5行的*point_1和*point_2表示定義兩個指標變數*point_1和*point_2。它們前面的「*」只是表示該變數是指標變數。
程式最後10行中的printf函式中的*point_1和*point_2則表示指標變數point_1和point_2所指向的變數。
8樓:匿名使用者
自定義一個交換兩個數的函式
對5個數進行冒泡法
迴圈執行函式就行了
9樓:系榆
void bubble_sort(int array,int n)}if(1 == flag)
}return;
}呼叫時,n的值為5就可以了,你可以將輸入的資料儲存到長度為5的陣列裡面,然後呼叫這個排序方法,希望可以幫到你,望採納
c語言題.寫一函式,用冒泡法對輸入的一組數按由小到大順序排序(要求形參為陣列),main函式呼叫實現
10樓:匿名使用者
#include
void sort(int a,int n)}}}void main()
sort(s,8);
printf("the sort is:\n");
for(i=0;i<8;i++)
printf("%d\n",s[i]);}
c語言編寫一個對一組數進行排序的函式,然後在主函式中呼叫該函式對輸入的若干個整數按從小到大方式排序。
11樓:oh丶很好啊
/* 氣泡排序法 */
#include "stdio.h"
#define size 10
void paixi(int a)
}void main()
;printf("data item in original order \n");
for(i=0;i<=size-1;i++)printf("%4d",a[i]);
paixi(a);
printf("\n data items in ascending order \n");
for(i=0;i<=size-1;i++)printf("%4d", a[i]);
printf("\n");}
12樓:坑沒有罪
#include
#include
void maopao(int *a,int len)}}}int main(void)
;maopao(&a,10);
// int b[10];
int i=0;
for(i=0;i<10;i++)
system("pause");
return 0;
}用的什麼編譯器 ? 如果是devcpp 就是上面的 如果是其他的編譯器就把 system("pause"); 改為 getchar();就可以了。
13樓:匿名使用者
你需要那種排序演算法來排序了?排序有很多演算法的,你這個題目有要求沒,如果沒的話,樓下的冒泡你你就可以用。
c語言程式設計——選擇排序法,要求:由主函式呼叫排序子函式,對n個整數進行從小到大的排序,謝了
14樓:匿名使用者
#include
#define size_n 20 //size_n is the size of the array
void sortfun(int a, int n)}void main()
sortfun(a,size_n); //呼叫排序函式for(int j=0;j 15樓:倒黴熊 #include void sort(int a,int n) //選擇排序}if(c !=i) //進行交換。}}int main() ;sort(a,10); int i; for(i=0;i<10;i++) getchar(); return 0;} c語言:呼叫自定義排序函式sort,對輸入的n個數進行從小到大輸出。 16樓: p[i]就是指標p指向的陣列的下標為i的元素。 首先以array 0 作為參照,從左到右掃描,找到最小的資料與array 0 位置交換。接下來以array 1 作為參照,重複上述過程。k i定位參照 k j找到剩下陣列中最小值 k i是為了每次迴圈都從當前項開始呀。k j 不是你說的j k 是為了記錄後面的最小項,以方便替換。 從第i個數開始,比... 你的程式排序結果是對的呀!怎麼不對了?你是不是對字串比大小不太瞭解啊?abc abboijuoiuj 因為c b,所以第二個字串第二個b後面就算有幾億個字元,也比第一個字元小。字串比大小是逐個字元比較的。小寫 大寫,如a a 從a到z一次增大。例如 abc,abbc,aabzzzzzz比大小,1步.... 問明 include include int main void swap char p1,p2 風若遠去何人留 可以使用三個陣列,或者是一個二維陣列來儲存字串,同時定義一個指標陣列,指向三個字串的首地址。然後對指標陣列進行排序。如下 include include int main int i,j...c語言用選擇法對陣列中整數按由小到大排序
C語言,在C 環境下執行「輸入字串,按由小到大的順序輸出」用指標的方法,請高手指點
C語言用指標方法輸入字串按由小到大順序輸出