这是C语言程序基础中的一道试题,在这段程序中 Fsort 函数是一个是什么逻辑,我尝试阅读但是没有读懂。我自己的理解是对字符串进行排序,我预想的结果应该是”Basic,c++,Fortan,Java,pascal“,但是结果却是”Basic,Fortan,Java,C++,pascal“,请问这是为什么。
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
void Fsort(char* name[], int n);
void Fprintf(char* name[], int n);
void main() {
char* name[] = { "Basic","Fortan","c++","Java","pascal" };
int n = 5;
Fsort(name, n);
Fprintf(name, n);
}
void Fsort(char* name[], int n) {
char* temp;
int i, j, k;
for (i = 0; i < n - 1; i++) {
k = i;
for (j = i + 1; j < n; j++)
if (strcmp(name[k], name[j]) > 0) k = j;
if (k != i) {
temp = name[i];
name[i] = name[k];
name[k] = temp;
}
}
}
void Fprintf(char* name[], int n) {
int i;
for (i = 0; i < n; i++) {
puts(name[i]);
}
}