10個數(shù)找最大值,并標出是第幾號#include <stdio.h>void fun(int *s, int t , int *k);int main( ){int i;? ? int a[10], k ;? ? for( i=0; i<10; i++)? ? ? ? scanf("%d",&a[i]);? ? fun(a,10,&k);? ? printf("%d\n",k);? ? printf("%d",a[k]);? ? return 0;}void fun(int *s, int t , int *k){? ? int i,min=0;? ? min=s[0];? ? for(i=1; i<t-1; i++)? ? ? ? {? ? ? ? ? ? if(s[i]<=min)? ? ? ? ? ? min=s[i];? ? ? ? }? ? for(i=0; i<t; i++)? ? {? ? ? ? ?if(s[i]==min)? ? ? ? ?*k=i;? ? }? ? return ;}就是min=s[i];為什么就可以返回主函數(shù)。。。。。。。。。我隨便刪了一個東西就打?qū)α?提交oj(* ̄▽ ̄)y也對了 很迷茫啊
3 回答

望遠
TA貢獻1017條經(jīng)驗 獲得超1032個贊
void?fun(int?*s,?int?t?,?int?*k)//這里int?*k使用了指針地址傳遞,當(dāng)函數(shù)調(diào)用結(jié)束后用*k保存最小值的下標,所以可以直接定義為void類型
for(i=1;?i<t-1;?i++) ????????{ ????????????if(s[i]<=min) ????????????min=s[i]; ????????} //這個for循環(huán)是尋找數(shù)組中的最小值,并將最小值保存在min中
for(i=0;?i<t;?i++) ????{ ?????????if(s[i]==min) ?????????*k=i; ????} //這個for循環(huán)是通過變量min找到對應(yīng)的下標,并保存在*k中
//兩個for循環(huán)可以統(tǒng)一寫成一個 *k=0; for(i=1;?i<t-1;?i++) ????????{ ????????????if(s[i]<=min) ???????????? ????????????{ ????????????????min=s[i]; ????????????????*k=i; ?????????????} ????????}
- 3 回答
- 0 關(guān)注
- 1295 瀏覽
添加回答
舉報
0/150
提交
取消