我的C程序出了什麼問題?標題是將n數從小到大排序,當我運行它時,一切正常,但數字未被排序。我只是不知道該如何解決,儘管我已經想了很久。我的C程序有什麼問題?這是關於指針和選擇排序
下面是代碼:
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
void selection(int *a[], int n);
int main()
{
int n;
int i;
scanf("%d", &n);
int *a[n];
int b[n];
srand((int) time(0));
for (i = 0; i < n; i++)
{
b[i] = ((int) (rand() % 100));
a[i] = &b[i];
}
selection(a, n);
return 0;
}
void selection(int *a[], int n)
{
int i;
int j;
int position;
int temp;
for (i = 0; i < n - 1; i++)
{
position = i;
for (j = i + 1; j < n; j++)
{
if (*a[i] > *a[j])
position = j;
}
temp = *a[i];
*a[i] = *a[position];
*a[position] = temp;
}
for (i = 0; i < n - 1; i++)
printf("%d\n", *a[i]);
}
是關於quicksort的代碼嗎? – Muntasir
你爲什麼要求'quicksort'和你的函數名是'bubble' ... o.O – LPs
@Junsong Huang沒有快速排序,也沒有泡沫排序。我認爲有錯誤的選擇排序。:) –