我想做一個排序函數來排序浮點值不兼容指針的順序。當你運行代碼時,在輸入指針數組的大小並輸入值之後,運行剛剛停止。我不知道問題出在哪裏,任何人都可以提供幫助。 我已經糾正了警告,但現在仍然導致運行該代碼排序功能不工作,模擬不能繼續
#include <stdio.h>
#include <stdlib.h>
void sort(const int size, float *input, float *output);
int main(void) {
int a;
float *b=&b1;
float *c=&c1;
int i, i1;
printf("input the size\n");
scanf("%d", &a);
b=(float*)malloc(sizeof(int)*a);
c=(float*)malloc(sizeof(int)*a);
for(i=0; i<a ; i++){
scanf("%f", &b[i]);
}
for(i1=0; i1<a; i1++){
c[i1]=b[i1];
printf("%f\n", c[i1]);
}
sort(10, b, c);
free(b);
free(c);
return 0;
}
void sort(const int size, float *input, float *output)
{
void swap(float *element1Ptr, float *element2Ptr);
int pass;
int j;
int i0;
for (pass=0; pass<size-1;pass++)
{
for (j=0; j<size-1;j++){
if(input[j]>input[j+1]){
swap(&input[j], &input[j+1]);
}
}
}
for (i0=0; i0<size; i0++){
output[i0]=input[i0];
printf("%f", output[i0]);
}
}
void swap(float *element1Ptr, float *element2Ptr)
{
float hold=*element1Ptr;
*element1Ptr=*element2Ptr;
*element2Ptr=hold;
}
先修復您的警告。 – wRAR 2014-09-02 10:00:29
你爲什麼要爲'float *'分配'int *'? – 2014-09-02 10:01:33
[請不要在C]中輸入'malloc()'的返回值(http://stackoverflow.com/questions/605845/do-i-cast-the-result-of-malloc)。 – unwind 2014-09-02 10:02:46