10个数找最大值,并标出是第几号#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];为什么就可以返回主函数。。。。。。。。。我随便删了一个东西就打对了 提交oj(* ̄▽ ̄)y也对了 很迷茫啊
3 回答
望远
TA贡献1017条经验 获得超1032个赞
void fun(int *s, int t , int *k)//这里int *k使用了指针地址传递,当函数调用结束后用*k保存最小值的下标,所以可以直接定义为void类型
for(i=1; i<t-1; i++) { if(s[i]<=min) min=s[i]; } //这个for循环是寻找数组中的最小值,并将最小值保存在min中
for(i=0; i<t; i++) { if(s[i]==min) *k=i; } //这个for循环是通过变量min找到对应的下标,并保存在*k中
//两个for循环可以统一写成一个 *k=0; for(i=1; i<t-1; i++) { if(s[i]<=min) { min=s[i]; *k=i; } }
- 3 回答
- 0 关注
- 1248 浏览
添加回答
举报
0/150
提交
取消