头发 发表于 2020-11-19 12:44:31

函数实参问题

#include<stdio.h>
#define N 3
void av4(float *sum[])
{
        int i,j,t;
        for(i=N-1;i>0;i--)
        {
                for(j=0;j<i;j++)
                {
                        if(*sum<*sum)
                        {
                                t=*sum;
                                *sum=*sum;
                                *sum=t;
                        }
                }
        }
}
int main()
{
        float sum={2,3,4};
        av4(sum);// cannot convert 'float*' to 'float**' for argument '1' to 'void av4(float**)'
        for(int i=0;i<3;i++)
       printf("%d",sum);
        return 0;
}
需要怎么改??求帮忙

xieglt 发表于 2020-11-19 13:39:47

本帖最后由 xieglt 于 2020-11-19 13:40 编辑

void av4(float sum[])
{
      int i,j,t;
      for(i=N-1;i>0;i--)
      {
                for(j=0;j<i;j++)
                {
                        if(sum<sum)
                        {
                              t=sum;
                              sum=sum;
                              sum=t;
                        }
                }
      }
}

另外main里
printf("%d",sum);
改成
printf("%f",sum);
页: [1]
查看完整版本: 函数实参问题