剛學C語言,撰寫一個程式,主函式無法呼叫子函式,那個Max,min沒用|?ω?`)求大佬幫忙解答一下,怎么回事_(:з」∠)_謝謝
代碼如下#include<stdio.h>
void main()
{
double max( double x[] );
double min( double y[] );
double a[10];
int i;
printf("input 10 numbers:");
for(i=0;i<10;i++)
{
scanf("%lf",&a[i]);
}
printf("max=%g,min=%g \n" ,max(a[10]) ,min(a[10]) );
}
double max( double x[] )
{
void swap(double i,double j);
double max;
int i;
for(max=x[0],i=0 ;i<9 ;i++)
{
if(max<x[i+1])
{
swap( max, x[i+1]);
}
}
return max;
}
double min( double y[] )
{
void swap(double i,double j);
double min;
int i;
for(min=y[0],i=0 ;i<9 ;i++)
{
if(min>y[i+1])
{
swap( min, y[i+1]);
}
}
return min;
}
void swap(double i,double j)
{
double t;
t=i;
i=j;
j=t;
}
uj5u.com熱心網友回復:
void swap(double i,double j);這個交換函式不用在每個子函式里都宣告一下
另外一個簡單的求最大值 最小值被你整的這么復雜。
double max( double x[] )
{
double max;
int i;
max=x[0];
for(i=0 ;i<10;i++)
{
if(max<x[i])
max = x[i]
}
return max;
}
這樣就可以了
uj5u.com熱心網友回復:
啊,我知道了,謝謝|?ω?`)因為剛學到陣列指標這里,就找個例題去試試,所以選擇了這么復雜的辦法_(:з」∠)_我把swap去掉后改成你那樣就好了,能再問一下為啥我之前的不行嘛|?ω?`)還是不太明白
uj5u.com熱心網友回復:
樓主找的題不錯,一下子就暴露了問題,你的swap引數是值傳遞,要用指標,改成地址傳遞,這樣才能對引數進行修改uj5u.com熱心網友回復:
啊,我明白了,謝謝,感謝各位大佬的幫助(?ò ? ó?)
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/15847.html
標籤:新手樂園
上一篇:為什么同一段代碼,單獨摘出來跑和把其他內容注釋掉跑運行結果不一樣?
下一篇:c語言多重for回圈如何優化
