【问题标题】:Selection sort not sorting选择排序不排序
【发布时间】:2020-01-12 12:25:45
【问题描述】:

只是测试排序方法,我遇到了选择排序。我已经理解了选择排序背后的逻辑,但我没有得到我希望从这个程序中看到的预期结果。它似乎根本没有排序。谁能告诉我哪里出错了。

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int StudentCreation(int StudentRecordArray[10]){
    for(int i = 0; i < 10; i++){
        StudentRecordArray[i] = rand() % 100;       //limiting the marks range from 0 - 100
    }
}

int SelectionSort(int SelectionSortarray[]) {
    int n = 0;
    int tmp = 0;
    for(int j = 0; j < 10-1; j++){
        int TempMinimum = j;

        for(int i = j+1; i < n; i++)
            if(SelectionSortarray[i] < SelectionSortarray[TempMinimum])
                TempMinimum = i;

        if(TempMinimum != j){
            tmp = SelectionSortarray[j];
            SelectionSortarray[j] = SelectionSortarray[TempMinimum];
            SelectionSortarray[TempMinimum] = tmp;
        }
    }

    for (int f = 0; f < 10; f++){
        printf("Student %d - %d\n", f+1, SelectionSortarray[f]);
    }
}

int main() {
    int StudentRecord[10];
    int MenuChoice;

    srand(time(NULL));      //random number seed generator

    StudentCreation(StudentRecord);

    printf("the unsorted list:\n");
    for (int f = 0; f < 10; f++){
        printf("Student %d - %d\n", f+1, StudentRecord[f]);
    }

    printf("\nthe sorted list:\n\n");

    SelectionSort(StudentRecord);

    return 0;
}

我换的地方有问题吗?

【问题讨论】:

  • 提示:检查n
  • 哦,我真傻-,-

标签: c arrays sorting random selection-sort


【解决方案1】:

排序功能有错别字。

代替

int n = 0;

应该有

int n = 10;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-03-12
    • 2013-04-25
    • 2019-09-16
    • 2023-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多