| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 445 人关注过本帖
标题:(求教有关c)编程题
只看楼主 加入收藏
tpengti
Rank: 2
等 级:论坛游民
帖 子:75
专家分:18
注 册:2010-5-9
结帖率:65.22%
收藏
已结贴  问题点数:20 回复次数:4 
(求教有关c)编程题
请问:我编的是void fun(int tt[M][N],int pp[N]),tt指向M行N列的二维数组,求出二维数组每列中最大元素,并依次放入pp所指的一维数组中。我这样编可以不????.......
.......
......
......
void fun(int tt[M][N],int pp[N])
{ for(N=0;N<=3;N++)
  { for(M=0;M<=2;M++)
     if(tt[0][N]<=tt[M][N])
      tt[0][N]=    tt[M][N];
   }
 PP[N]=tt[0][N]
}
main()
{ int t[M][N]={{68,32,56,12},{14,24,88,58},{42,22,44,56}};
  int p[N],i,j,k;
........
.....
....
fun(t,p);
.......
printf("%4d",p[K])
搜索更多相关主题的帖子: 元素 
2010-05-25 10:02
chenaiyuxue
Rank: 5Rank: 5
来 自:山东滨州
等 级:职业侠客
帖 子:334
专家分:370
注 册:2008-5-20
收藏
得分:0 
可以。
一个小建议: if(tt[0][N]<=tt[M][N])改成 if(tt[0][N]<tt[M][N]),在有相等的数时可以减少赋值的次数

你是雪,我是尘埃,相遇是意外;你坠落,在我胸怀,流进我血脉。
2010-05-25 10:10
tpengti
Rank: 2
等 级:论坛游民
帖 子:75
专家分:18
注 册:2010-5-9
收藏
得分:0 
回复 2楼 chenaiyuxue
呵呵,恩,谢谢了

没有开发不了的软件,只有开发不了的大脑
2010-05-25 10:15
ww稻草人
Rank: 5Rank: 5
来 自:陕西西安
等 级:职业侠客
帖 子:57
专家分:309
注 册:2010-5-11
收藏
得分:20 
我感觉你这样编不行(仅仅是我个人观点),具体原因如下:
1,,你在fun函数里面不应该把M,N当做变量来循环累加,看你的程序,貌似M,N在最开始时宏定义过的吧,那就更不能改变他们的值了。你要累加就定义两个变量吧。
2 ,你在定义函数fun时是这样写的void fun(int tt[M][N],int pp[N]),你传给fun的根本不是两个数组的数组名,而是他们某个的元素,就像是传给他tt[M][N]和pp[N]这两个元素一样,也就是说编译器会以为你传给他的只是两个int型变量,而你在fun函数里对数组pp所做的操作,将不会影响原数组中得值,也不会将你求的最大值保存在pp中。你应该改为void fun(int tt[][N],int pp[]);
3,最好在函数结尾加个return,即使你不返回任何值,也得告诉编译器你这个函数结束了。这样不容易引起出错。

我的博客  http://blog..cn/daocaoren020
2010-05-25 10:36
南国利剑
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:29
帖 子:1165
专家分:3536
注 册:2010-4-12
收藏
得分:0 
回复 楼主 tpengti
请楼主贴出完整的代码出来看看!

南国利剑
2010-05-26 00:44
快速回复:(求教有关c)编程题
数据加载中...
 
   



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

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