【发布时间】:2020-04-25 07:31:54
【问题描述】:
#include <stdlib.h>
#include <stdio.h>
void selection_sort(int array[],int num);
int main(void) {
int i,num;
printf("Write the number of elements :");
scanf("%d",&num);
int array[100];
for(i=0;i<num;i++){
scanf("%d",&array[i]);
}
selection_sort(array,num);
return 0;
}
//Doing selection sort algorithm :
void selection_sort(int array[],int num){
int i,j,min,temp;
for (i=0;i<num;i++){
min=i;
for(j=i+1;j<num;j++){
if (array[j]<array[i]){
min=j;
}
}
if (min!=i){
temp=array[i];
array[i]=min;
min=temp;
}
}
printf("Sorted elements :\n");
for (i=0;i<num;i++){
printf("%d\n",array[i]);
}
}
请告诉我为什么我无法显示已排序的元素
【问题讨论】:
-
在您发现您的程序无法按预期运行后,您做了什么?你有没有尝试过自己调试它?通过在调试器中运行程序和/或添加调试打印语句?如果是这样,你发现了什么? How to debug small programs
-
你不是说array[i]=array[min];数组[分钟]=温度; ?
-
一个建议:
int array[]恕我直言是个谎言,因为您没有将数组传递给函数。这实际上是int* array,因此函数内部的更改会影响调用者站点上的数组。只是告诉你,有些人更喜欢这种风格。 -
一个建议:
int array[]恕我直言是个谎言,因为您没有将数组传递给函数。这实际上是int* array,因此函数内部的更改会影响调用者站点上的数组。只是告诉你,有些人更喜欢这种风格。
标签: c algorithm sorting selection-sort