1樓:計算機之祖
大概思路:用指標p指向
陣列的首位址,用指標去引用陣列中的各個元素,並對陣列中各個元素就行運算和比較操作了,**可以參照如下:
#include
#include
int main()
p=array;
printf("排序前為:\n");
for(i=0;i<5;i++)
p=array;
for(i=0;i<4;i++)}}
printf("排序之後:\n");
for(i=0;i<5;i++)
return 0;}
2樓:匿名使用者
這個不難。
#include
#include
int bubblesort(int *data, const size_t num);
void print_array(const int arr, const size_t len);
int main(int argc, char *argv)
;size_t len_array;
len_array = sizeof(values)/sizeof(values[0]);
printf("the array \t: ");
print_array(values, len_array);
bubblesort(values, len_array);
printf("bubble sort \t: ");
print_array(values, len_array);
return 0;
}int bubblesort(int *data, const size_t num)
}i--;
}return 0;
}void print_array(const int arr, const size_t len)
輸入: 9 8 7 6 5 4 3 2 1
輸出: 1 2 3 4 5 6 7 8 9
3樓:匿名使用者
//純指標打造
void sortmp(int *arr,int n)}}}
c語言用指標進行氣泡排序
4樓:
根據我多年的 c 語言程式設計經驗,如果能夠少用(或者不用)指標的地方,那麼盡量還是不要使用指標,可以通過別的方法實現相同功能。例如:你這個氣泡排序程式,如果需要處理的資料量不大,你就可以使用陣列下標來實現。
具體的源程式,現在市面上關於資料結構的書籍裡面都會有各種具體排序(包括:順序檢索、二分搜尋等)的源程式供參考。
雖然說 c 語言的指標功能相當強大,但同時也是最難於除錯的地方。如果真的是需要處理的資料量相當巨大時,那麼也不是定義幾個指標變數就能夠解決問題的,那就必須要從計算機的資料結構和軟體演算法上進行根本的改進了。
5樓:匿名使用者
#include
main()
p=a;
s(a,10);
for(i=0;i<10;i++)
printf("\n");
}int s(int *pa,int n)}}}
c語言使用指標實現陣列元素氣泡排序
6樓:文化廚子
#include
int main()
7樓:匿名使用者
#include
#define n 5
void swap(int *p);
int main()}
用vc++編寫乙個程式用氣泡排序法,對乙個一維陣列進行排序,在排序過程中要求用指標提取陣列元素
8樓:笑風中
#include
#define max 20 //最多記錄個數typedef int elemtype;
typedef elemtype recs[max];
void bibubble(recs r,int n)for(j=n-i-1;j>=i+1;j--) //反向遍歷if(r[j]>r[j-1])
i++;}}
void main()
;int n=10, i;
cout<<"雙向氣泡排序"< for(i=0;i cout<
cout< cout<<" 排序後: "; bibubble(a,n); for(i=0;i cout<
cout< 9樓:little志 #include void main() ,*p=a; int i,j,temp,size; size=sizeof(a)/sizeof(int); for(i=0;i*(p+j+1))}} for(i=0;i上學期學的,生疏了,呵呵 c語言 使用氣泡排序將一維陣列a中的n個元素公升序排列 10樓:59分粑粑 方法和詳細的操作步驟如下: 1、第一步,開啟c檔案,定義一組序列和要排序的各種變數,然後處理排序邏輯,具體的**見下圖,轉到下面的步驟。 2、第二步,完成上述步驟後,氣泡排序的邏輯是一組數字從第乙個值開始,如果兩個相鄰數字的順序與期望的順序不同,則會交換兩個數字的位置。 重複此過程,直到最後乙個數字。如果需要交換,則排序完成,實現的**見下圖,轉到下面的步驟。 3、第三步,完成上述步驟後,編譯並執行程式,就獲得了想要的結果了,見下圖。這樣,就解決了這個問題了。 11樓:離歌亮仔仔 我這給出乙個不用指標,不用手動分配記憶體空間的相對 精簡易懂 的方法 #include int main() }printf("排序結果:\n"); for(i=0;i printf("%d ",a[i]); printf("\n"); return 0;} 12樓:2013努力實現 #include #include int main() printf("請為%d個元素賦值如 1 2 3\n",n); for(i=0;ip[j+1]) }printf("排序結果!\n"); for(i=0;i printf("%5d",p[i]); printf("\n"); return 0;} 13樓:回歸╮幼稚 #include int main() {int t,i,j,a[100],n; scanf("%d",&n); for(i=0;i scanf("%d",&a[i]); for(i=1;i 14樓:示申僉 #include "stdio.h" int main() for(i=0;i結果: 我想用c語言的指標和函式實現氣泡排序,輸入一就從小到大排序否則就大到。給陣列賦值然後呼叫第乙個函式 15樓:c呀可可 沒聽懂你想要表達的意思。所以我把你有可能需要的都貼上:(**是以前寫的,gcc編譯器。有的部分省略了,自行補上。) 排序一維陣列(從大到小,普通自定義函式) 輸入:1,2,3,4,5,6,7,8,9,10輸出:10,9,8,7,6,5,4,3,2,1排序一維陣列(從大到小,指標函式) 輸入:1,2,3,4,5,6,7,8,9,10輸出:10,9,8,7,6,5,4,3,2,1排序二維陣列(沒用函式) 輸入:1 2 3 4 4 2 3 1 4 1 3 2 3 2 4 1 輸出結果為: 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 用c語言編寫乙個,用指標實現氣泡排序。的 程式,急,謝各位大哥了 16樓: #include main() ;int *p=a; int i,j; for(i=0;i<5;i++) for(j=0;j<5;j++) for(i=0;i<6;i++) printf("%d",a[i]); }其它的潤色功能就看你自己了 17樓:匿名使用者 int mao=; for(int i=mao.length-1;i>=0;i--){ for(int j=0;jmao[j+1])int k=mao[j]; mao[j]=mao[j+1]; mao[j+1]=k; 按照這個把指標指向陣列就可以了。 c語言將氣泡排序(或選擇排序)改造成函式,實現對乙個一維陣列中的元素進行排序 18樓:匿名使用者 /*其實就是把排序封裝成乙個函式即可,使用時傳遞陣列的引用便可以實現對陣列元素進行排序了,因為陣列傳遞的就是位址 */#include void sort(int a,int n)}}}void main() //呼叫sort函式排序 sort(a,n); //輸出測試 for(i=0;i 對於任意的物件a,寫作 a b也是可以的,不過很少有這樣寫。include int main int i,j int b 4 5 int k 0 for i 0 i 3 i for i 0 i 4 5 1 i for j i 1 j 4 5 j if b i 些 能貼上複製,能文 且程式設計其東西沒... 先說些這個2維陣列 int arr 3 4 可以理解為乙個3行四列的矩陣,那麼第一維arr 0 arr 1 arr 2 中存的分別是對應行的位址,也就是說arr 0 存的是乙個 大小為4的整形陣列位址 這樣的話就好理解了,arr存的位址值其實與arr 0 本質上是相同的。都是這個連續空間的開始位址。... 關注位址型別,只要型別匹配就正確,下面描述中注意括號,用來斷句。int a 2 3 陣列型別是int 2 3 位址型別是 int 3 含義是 指向 含3個整數的一維陣列 的常量指標,該指標指向的位址為3個列的一行,所以陣列名本身就是行位址。int p 3 陣列型別是 int 3 含義是 含3個 整數...c語言請使用指標變數將二維整數陣列進行氣泡排序
關於c語言二維陣列陣列名與指標的問題
C語言指標陣列的問題