| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1142 人关注过本帖
标题:一道关于指针的题目,差最后一步;百思求解
只看楼主 加入收藏
ljt0000mf
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:104
专家分:157
注 册:2009-7-4
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:14 
一道关于指针的题目,差最后一步;百思求解
题目要求:指针的作业题。一个班有4个学生,五门课,求1:第一门课的平均分 2:找出平均成绩在90分以上,或全部课程成绩在85分以上的学生。用函数实现 ;
我的程序如下:

程序代码:
#include "stdio.h"
#include "conio.h"
#include "string.h"

float top(float(*p)[5],int n)
{
   float sum=0,ave=0;
  int i,j,a=0;
  for(i=0;i<n;i++)
     { sum=0;
       a=0;
    for(j=0;j<n+1;j++)
       {
        if(*(*(p+i)+j)>=85) a++;
        sum=sum+*(*(p+i)+j);}
       ave=sum/(n+1);
       if(ave>=90) printf("the student number ave>90 is:%d\n",i) ;
       else if(ave<90&&a==5)  printf("the student number>85 is:%d\n",i) ;
     }

   }

float average(float(*p)[5],int n)
{
   int i,j=0;
   float ave=0,sum=0;

   for(i=0;i<n;i++)
   sum=sum+*(*(p+i)+j);
   ave=sum/n;
   printf("average=%5.2f\n",ave);
 }

main()
{
  float a[4][5]={{70,75,89,64,51},{89,92,88,97,93},{62,51,28,75,59},{85,86,87,89,88}};
  float average(float(*p)[5],int n);
  float top(float(*p)[5],int n);
  int i,m;
  average(a,4);
  top(a,4);
   getch();
}
问题是,这个程序运行会一闪而过。
但是,如果在主程序中,只用一个函数,如average(a,4)或top(a,4),都可以得到正确结果,这二个函数一起运行,
就会闪过去。
求解。
谢谢各位
搜索更多相关主题的帖子: 指针 求解 指针 求解 
2009-11-12 14:34
chiZ
Rank: 2
来 自:paradise
等 级:论坛游民
帖 子:27
专家分:99
注 册:2009-10-25
收藏
得分:0 
for average and top function, you return nothing. if you don't need to return value , change float to void in function definition!
2009-11-12 14:52
smltq
Rank: 6Rank: 6
等 级:侠之大者
威 望:8
帖 子:566
专家分:400
注 册:2008-1-21
收藏
得分:0 
在Dev-C++上运行正常

简单的生活
2009-11-12 15:35
ljt0000mf
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:104
专家分:157
注 册:2009-7-4
收藏
得分:0 
针对二楼的提示,我想要有返回值呢,
就是printf里的内容;不知如何解决
2009-11-13 03:05
chiZ
Rank: 2
来 自:paradise
等 级:论坛游民
帖 子:27
专家分:99
注 册:2009-10-25
收藏
得分:0 
in the bottom of average function, write "return ave ", i don't understand what you want in top function? you want the total number of students under the two conditions or you want two numbers seperately return to main function???
2009-11-13 03:21
ljt0000mf
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:104
专家分:157
注 册:2009-7-4
收藏
得分:0 
回chiZ,你英文不错啊。
average函数,是求4个学生,第一门课的平均成绩;
top函数,求每位学生平均分大于90,或每位学生的单个成绩在85以上的。
2009-11-13 06:12
chiZ
Rank: 2
来 自:paradise
等 级:论坛游民
帖 子:27
专家分:99
注 册:2009-10-25
收藏
得分:0 
我是问在TOP 里你想RETURN 什么 value?? 如果RETURN TYPE 是FLOAT只能RETURN 一个数!! 如果你想找总共有多少人符合条件的话可以! 如果你想要的是具体是哪个学生的话就得用POINTER了!我不知道你问的是什么???

[ 本帖最后由 chiZ 于 2009-11-13 08:46 编辑 ]
2009-11-13 08:43
一旋无风
Rank: 2
等 级:论坛游民
帖 子:55
专家分:92
注 册:2009-11-11
收藏
得分:0 
void top((float(*p)[5],int n))和void average(float(*p)[5],int n),你又不返回什么东西
2009-11-13 13:20
ljt0000mf
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:104
专家分:157
注 册:2009-7-4
收藏
得分:0 
以下是引用chiZ在2009-11-13 08:43:22的发言:

我是问在TOP 里你想RETURN 什么 value?? 如果RETURN TYPE 是FLOAT只能RETURN 一个数!! 如果你想找总共有多少人符合条件的话可以! 如果你想要的是具体是哪个学生的话就得用POINTER了!我不知道你问的是什么???
top里想找出具体是哪个学生。
用Pointer?指针吗?返回值是指针?
2009-11-13 18:48
ljt0000mf
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:104
专家分:157
注 册:2009-7-4
收藏
得分:0 
以下是引用一旋无风在2009-11-13 13:20:33的发言:

void top((float(*p)[5],int n))和void average(float(*p)[5],int n),你又不返回什么东西
我没用VOID,用的是float,想返回具体的学生是哪一个;
函数单用,都可以正常显示出来;二个在一起,就一闪而过。看不到结果。
2009-11-13 18:50
快速回复:一道关于指针的题目,差最后一步;百思求解
数据加载中...
 
   



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

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