| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1620 人关注过本帖
标题:这个该怎么改..
只看楼主 加入收藏
瘦不了噜er
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:30
专家分:135
注 册:2016-6-14
结帖率:91.67%
收藏
 问题点数:0 回复次数:10 
这个该怎么改..
程序代码:
  #include <conio.h>
  #include <stdio.h>   
int max;  

 int fun( int arr[ ],int n )  

 { int pos,i;    

 max = arr[0];   

 pos = 0;    

 for ( i=1; i<n; i++) 

 
      if (max < arr[i])     
      { max = arr[i]; 
      pos=i; }   
      return(pos);  

 }   

 void main()  

 { 
     int a[10]={1,4,2,7,3,12,5,34,5,9}, n; 

 fun(a,n);   

 printf("The max is: %d ,pos is: %d\n", max , n);  

 }  


图片附件: 游客没有浏览图片的权限,请 登录注册
2016-06-16 00:13
linlulu001
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:20
帖 子:944
专家分:4047
注 册:2016-4-13
收藏
得分:0 
n没有初始化,所以实参n无效。
子函数int fun( int arr[ ],int n )带返回值,你是不是应该要找一个相对应的变量来接收这个返回值。
你自己试试怎么改,不会再说。
2016-06-16 09:10
hykj9495
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:4
帖 子:796
专家分:1441
注 册:2016-6-6
收藏
得分:0 
学习了

慢慢调试
2016-06-16 09:26
瘦不了噜er
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:30
专家分:135
注 册:2016-6-14
收藏
得分:0 
回复 2楼 linlulu001
程序代码:
  #include <conio.h>
  #include <stdio.h>   
int max,pos;  

 void  fun( int arr[ ],int n )   

 { int i;    

 max = arr[0];   

 pos = 0;    

 for ( i=1; i<n; i++) 

 
      if (max < arr[i])     
      { max = arr[i]; 
      pos=i; }   
      return;  

 }   

 void main()  

 { 
     int a[10]={1,4,2,7,3,12,5,34,5,9}, n=10; 

 fun(a,n);   

 printf("The max is: %d ,pos is: %d\n", max ,pos);  

 }  



我这样改应该对了吧..你说的接受返回值 最后那个位置总是显示的0
2016-06-16 09:34
gz1347351162
Rank: 2
等 级:论坛游民
帖 子:19
专家分:44
注 册:2016-5-30
收藏
得分:0 
return用错地方了,放if里
2016-06-16 09:41
瘦不了噜er
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:30
专家分:135
注 册:2016-6-14
收藏
得分:0 
回复 5楼 gz1347351162
warning C4715: 'fun' : not all control paths return a value


会这样..
2016-06-16 09:47
linlulu001
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:20
帖 子:944
专家分:4047
注 册:2016-4-13
收藏
得分:0 
pos的值要加1就是最大值在第几个,还有,子函数fun是空函数,所以结尾处不用返回值。
2016-06-16 09:50
gz1347351162
Rank: 2
等 级:论坛游民
帖 子:19
专家分:44
注 册:2016-5-30
收藏
得分:0 
忘记了,for循环里是不能用有return的,在if里放一个break来终止循环就好,return放到循环外
2016-06-16 11:11
平常心q
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:7
帖 子:120
专家分:550
注 册:2016-3-31
收藏
得分:0 
The max is: 34 ,pos is: 7
Press any key to continue
没有错误啊,我测试了
2016-06-16 12:09
格格不入fl
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:56
专家分:192
注 册:2016-3-23
收藏
得分:0 
程序代码:
 #include <conio.h>
   #include <stdio.h> 
int max,pos;
  void  fun( int arr[],int n ) 
  { int i;  
  max = arr[0]; 
  pos = 0;  
  for ( i=1; i<n; i++)

       if (max < arr[i])   
       { max = arr[i];
       pos=i; } 
       
  } 
  void main()
  {
      int a[10]={1,4,2,7,3,12,5,34,5,9}, n=10;
  fun(a,n); 
  printf("The max is: %d ,pos is: %d\n", max ,pos+1);
  } 



[此贴子已经被作者于2016-6-16 12:59编辑过]

2016-06-16 12:56
快速回复:这个该怎么改..
数据加载中...
 
   



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

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