| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 571 人关注过本帖
标题:求大神帮忙看一下 这个程序最后一句不懂!!!
只看楼主 加入收藏
yangzhenhao9
Rank: 1
等 级:新手上路
帖 子:9
专家分:7
注 册:2013-11-27
结帖率:100%
收藏
已结贴  问题点数:5 回复次数:7 
求大神帮忙看一下 这个程序最后一句不懂!!!
#include <stdio.h>
#define N 10
int fmax(int y[],int);

void main(void)
{
    int i,x[N];
    for(i=0;i<N;i++)
        scanf("%d",&x[i]);
    printf ("%d\n",fmax(x,N));
}
int fmax(int y[],int n)
{
    int k=0,i;
    for(i=0;i<n;i++)
        if (y[i]>y[k]);
            k=y[i];
        return k;

}
最后的k怎么能等于y【i】呢?这样还是对的!!!纳闷
搜索更多相关主题的帖子: include 
2014-01-04 23:28
韶志
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:斗气大陆
等 级:贵宾
威 望:44
帖 子:2223
专家分:13592
注 册:2013-3-22
收藏
得分:1 
因为你的这句    if (y[i]>y[k]);   有个分号,k=y[i];根本不在 if 判断中,也不在循环中

所以数组不会出现越界情况

三十年河东,三十年河西,莫欺少年穷!
2014-01-04 23:45
yangzhenhao9
Rank: 1
等 级:新手上路
帖 子:9
专家分:7
注 册:2013-11-27
收藏
得分:0 
回复 2楼 韶志
本来没有分号也对 这是为什么
2014-01-05 00:07
zhaogay
Rank: 7Rank: 7Rank: 7
来 自:宫
等 级:黑侠
帖 子:151
专家分:586
注 册:2013-10-10
收藏
得分:1 
因为你这虽然可能越界了,但是还是在分配的函数内存中,没有超出系统给你的大小,但如果你输入的值都很大的话,就会超出,然后就挂了。

好好学习,天天想上
2014-01-05 01:00
dtxwz
Rank: 2
等 级:论坛游民
帖 子:79
专家分:45
注 册:2011-9-18
收藏
得分:1 
把if后面的分号去了,没问题啊?返回数组中的最大的数。
2014-01-05 13:10
yangzhenhao9
Rank: 1
等 级:新手上路
帖 子:9
专家分:7
注 册:2013-11-27
收藏
得分:0 
回复 4楼 zhaogay
如果这样的话if函数就是参与循环了吧?那k的值到下一次循环中就不是和i交换了吧?这样应该是k=y【i】吧?
2014-01-05 22:37
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
收藏
得分:1 
楼上几位都在讨论啥?

总有那身价贱的人给作业贴回复完整的代码
2014-01-06 06:47
夏天天蓝
Rank: 2
等 级:论坛游民
帖 子:39
专家分:86
注 册:2013-12-30
收藏
得分:1 
数组数据越界问题。
2014-01-06 08:32
快速回复:求大神帮忙看一下 这个程序最后一句不懂!!!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019700 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved