在C语言中,我们可以使用指针来实现选择排序。具体实现方法如下: 1. 定义一个指向数组的指针,用于遍历数组。 2. 使用两个指针变量,一个指向当前未排序序列的第一个元素,另一个指向当前未排序序列中最小的元素。 3. 遍历数组,找到未排序序列中最小的元素,并将其与当前未排序序列的第一个元素交换位置。 4. 将...
【C语言】用指针描述数组,实现选择法排序 #include <stdio.h> int main() { int a[10], t; int i, j, max; printf("请输入10个数:\n"); for (i = 0; i <= 9; i=i+1) scanf_s("%d", a+i); for (j = 9; j >=0; j = j-1) { max = j; for (i = 0; i <=j; i...
voidSelect_Sort(float*pt,intn) {//全用指针的选择排序法 inti,j,k; floattempnum; for(i=0;i<n;i++){ k=i; for(j=i+1;j<n;j++) { if(*(pt+j)>* (pt+i)) { k=j; } } tempnum=*(pt+i); * (pt+i)=* (pt+k); * (pt+k)=tempnum; } } 配一个以前的图片和代码: ...
voidSelect_Sort(float*pt,intn){//全用指针的选择排序法 inti,j,k;floattempnum;for(i=0;i<n;i++){ k=i;for(j=i+1;j<n;j++){ if(*(pt+j)>*(pt+i)){ k=j;} } tempnum=*(pt+i);*(pt+i)=*(pt+k);*(pt+k...
generate(a,n); printf("排序前:\n"); print(a,n); sort(a,n); printf("排序后:\n"); print(a,n); return 0; } C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解: 算法竞赛课入门 蓝桥杯辅导课程...
{ a[i]=录入数值;} Sort(a, n);for(j=0; j<n; j++){ printf("%d",a[ij);//输出的内容就是排序好了的 } //下面方法是用来排序的 void Sort(int *a, int n){ int i, j, temp;for(i=0; i<n; i++){ for(j=i; j<n; j++){ if(a[i] > a[j]){ temp = a[...
void main( ){ int a[10],*p,*q,*r,min;printf("请输入十个数:");for(p=a;p<a+10;p++)scanf("%d",p);for(p=a;p<a+10;p++){ for(q=p+1,r=p;q*q)r=q;min=*p;p=*r;r=min;} printf("排序后的数组:");for(p=a;p...
你的程序没错,只不过这不是选择法,是冒泡发,选择发如下:void sort(int *a,int n){ int i,j,t,temp;for(i=0;i<n-1;i++){ t=i;/初始定义t为未排序数的第一个 for(j=i+1;j<n;j++){ if(*(a+t)<*(a+j))/挑选出更大的数的位置,把他赋给t t=j;} temp=*(a+i)...
void inv(int * x,int n){ int * i,* j,* k,temp;for(i=x;i<x+n-1;i++){ k=i;for(j=i+1;j<(x+n);j++) //j=i+1不是x+1 if(* j>* k) k=j;//问题处 if(k!=i){temp=* k;* k=* i;* i=temp;} //这里交换k,i指向的值,不是j指向的值 } } ...
用c语言对10个数进行排序 2.选择排序法 #include int main() { int arr[10] = {5, 6, 8, 3, 4, 9, 7, 2, 6, 1}; int i, j, min, temp; for (i = 0; i < 9; i++) { min = i; for (j = i+1; j < 10; j++) { ...