|
1鱼币
自己编写的选择排列语法,一直在修改都未获成功。。已经想了一个晚上了,还是不知道错在哪里 望高手指点迷津!
#include <stdio.h>
#define N 10
int main(void)
{
int i, j, k,l, temp, num[N],max_id;
printf("Enter 10 numbers: ");
for (i = 0; i < N; i++)
{
scanf_s("%d", &num[i]);
}
for (j = N - 1; j >= 0; j--)
{
max_id = j;
for (k =1; k <N - j ; k++)
{
if (num[k] > num[max_id])
{
max_id = k;
}
}
if (max_id != j)
{
temp = num[j];
num[j] = num[max_id];
num[max_id] = temp;
}
}
for (l = 0; l < N; i++)
{
printf("%d", num[l]);
}
return 0;
}
选择排序是冒泡排序的一种变形,每次循环都找出一个最大值或最小值,我先简单给出你这个的标准形式,再看看你代码的问题在哪里 - for (j = N - 1; j >= 0; j--)
- {
- max_id = j;
- for (k = j-1; k >=0; k--)
- {
- if (num[k] < num[max_id])
- {
- max_id = k;
- }
- }
- if (max_id != j)
- {
- temp = num[j];
- num[j] = num[max_id];
- num[max_id] = temp;
- }
- }
复制代码
排序算法部分的改动
|
最佳答案
查看完整内容
选择排序是冒泡排序的一种变形,每次循环都找出一个最大值或最小值,我先简单给出你这个的标准形式,再看看你代码的问题在哪里
排序算法部分的改动
|