在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; } } 配一个以前的图片和代码: ...
int *a = (int *)malloc(sizeof(int) * n); //动态分配数组空间 ,有几个元素,n就是几。for(i=0; i<n; i++){ a[i]=录入数值;} Sort(a, n);for(j=0; j<n; j++){ printf("%d",a[ij);//输出的内容就是排序好了的 } //下面方法是用来排序的 void Sort(int *a, ...
用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++) { ...
c语言结构体指针:输入三个学生成绩,选择排序法排序输出,请大神指教,哪里错了? 10 #include<stdio.h>structStudent{charname[20];intscore;};intmain(){structStudentstu[3],temp;structStudent*p;p=stu;inti,j,k;printf("请输入学生的姓名和成绩\n");for(i=0;i<3;i+... #include<stdio.h>struct ...
你的程序没错,只不过这不是选择法,是冒泡发,选择发如下: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 sort(int *a,int n){ int i,j...
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指向的值 } } ...
include<stdio.h> int main(){int i,j,k,t,a[10]={54,78,12,18,97,58,79,37,66,87};for(i=0;i<9;i++){ k=i;for(j=i+1;j<10;j++)if(a[j]<a[k])k=j;t=a[k];a[k]=a[i];a[i]=t;} for(i=0;i<10;i++)printf("%d ",a[i]);return 0;} ...