为了账号安全,请及时绑定邮箱和手机立即绑定

帮忙看一下下面的代码 大一的对void的怎么返回的不是很了解

帮忙看一下下面的代码 大一的对void的怎么返回的不是很了解

C
qq_叨扰_0 2016-12-16 17:53:22
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;
             }
        }


查看完整回答
反对 回复 2016-12-16
?
qq_叨扰_0

TA贡献1条经验 获得超0个赞

是 最小值


查看完整回答
反对 回复 2016-12-16
  • qq_no_8
    qq_no_8
    min=s[i]执行完以后,继续执行下面的for循环, 最后返回执行语句,返回一个值到k, 然后执行fun函数下面的printf语句
  • 3 回答
  • 0 关注
  • 1248 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信