| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 470 人关注过本帖
标题:返回指针的函数求最大值
只看楼主 加入收藏
梁菜鸟
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2011-8-31
结帖率:50%
收藏
已结贴  问题点数:5 回复次数:5 
返回指针的函数求最大值
#include<stdio.h>
int *func(int x[],int n)
{int i,k=0,*p;
 for(i=0;i<n;i++)
     if(x[k]<x[i+1])
         k=i+1;
     p=&x[k];
     
return(p);
}
void main()
{
 int a[10],*p,i;
 printf("请输入十个数:\n");
 for(i=0;i<10;i++)
     scanf("%d",&a[i]);
 p=func(a,10);
 printf("%d",*p);
}
这是求数组中最大值问题。怎么结果不对
搜索更多相关主题的帖子: 最大值 
2011-09-07 13:27
hanxiaokun
Rank: 2
等 级:论坛游民
帖 子:44
专家分:56
注 册:2011-8-31
收藏
得分:2 


#include<stdio.h>
int *func(int x[],int n)
{int i,k=0,*p;
for(i=0;i<n;i++)
     if(x[k]<x[i])//在此处x[i+1]会超出你在主函数定义的数组长度,所以会产生一个错误的值,改为x[i]就好了
         k=i+1;
     p=&x[k];
     
return(p);
}
void main()
{
int a[10],*p,i;
printf("请输入十个数:\n");
for(i=0;i<10;i++)
     scanf("%d",&a[i]);
p=func(a,10);
printf("%d",*p);
}
2011-09-07 14:08
woshiaokeman
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:60
专家分:123
注 册:2011-4-5
收藏
得分:2 
if(x[k]<x[i+1])
         k=i+1;
这个地方我不怎么理解……我觉得应该是这样:
{int i,min,*p;
min=x[i];
for(i=0;i<n;i++)
     if(min>x[i])
     min=x[i];
p=&min;
return(p);
}
2011-09-07 14:16
statics
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:163
专家分:625
注 册:2011-8-29
收藏
得分:2 
2楼没错

惟我独行...
2011-09-07 14:19
hanxiaokun
Rank: 2
等 级:论坛游民
帖 子:44
专家分:56
注 册:2011-8-31
收藏
得分:0 
当i=9;的时候是没有x[i+1]即x[10]的,好好看看
2011-09-07 15:03
梁菜鸟
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2011-8-31
收藏
得分:0 
我发现你们说的都对  谢了
2011-09-07 16:43
快速回复:返回指针的函数求最大值
数据加载中...
 
   



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

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