| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 926 人关注过本帖
标题:[求助]一道关于指针方面的程序问题
取消只看楼主 加入收藏
ZZCCY
Rank: 1
等 级:新手上路
帖 子:87
专家分:0
注 册:2006-5-1
收藏
 问题点数:0 回复次数:2 
[求助]一道关于指针方面的程序问题

大家晚上好
这道题有三个函数,average(),search1(),和search2(),通过它们分别实现求所有成绩的平均值,打出第n个学生的成绩,和找出至少有一门功课不及格的同学的学号并打印出全部成绩.
这道题前两个函数都可以实现,而第三和函数编译成功但执行失败.我看了好几天还是没找到原因
特求助于此,希大家不吝赐教,不胜感激!
main()
{void average();
void search1();
void search2();
static float score[3][4]={{65,57,70,60},{58,87,90,81},{90,99,100,98}};
average(*score,12);
search1(score,2);
search2(score,3);
}

void average(p,n)
float *p;int n;
{float *p_end;
float sum=0,aver;
p_end=p+n-1;
for(;p<=p_end;p++)
sum=sum+(*p);
aver=sum/n;
printf("average=%5.2f\n",aver);
}

void search1(p,n)
float (*p)[4];int n;
{int i;
printf("the scores of no.%d are :\n",n);
for(i=0;i<4;i++)
printf("%5.2f ",*(*(p+n)+i));
printf("\n");
}
void search2(p,n)
float (*p)[4];int n;
{int i,j,flag;
for(j=0;j<n;j++)
{flag=0;
for(i=0;i<4;i++)
if(*(*(p+j)+i)<60) flag=1;
if(flag==1)
{printf("no.%d is fail,his scores are:\n",j+1);
for(i=0;i<4;i++)
printf("%d", *(*(p+j)+i));
printf("\n");
}
}
}

搜索更多相关主题的帖子: 指针 
2006-05-02 23:00
ZZCCY
Rank: 1
等 级:新手上路
帖 子:87
专家分:0
注 册:2006-5-1
收藏
得分:0 
[经验]

通过 7楼feng1256 的帮助使我这道题顺利的解决了。

主要有以下几点原因导致这道题的问题:
1、应该在for(i=0;i<4;i++)
if(*(*(p+j)+i)<60) flag=1;
这个语句后面加一个break,也就是变成:
for(i=0;i<4;i++)
if(*(*(p+j)+i)<60)
{flag=1;
break;
}
不加也可以但程序不够严密。
2、也是最主要的一点就是我定义的数组元素是float,而我输出的时候
用的是%d导致出错。
以上是我对这道题的总结。

在这里我特别的感谢7楼,是你拨开迷雾,给了我启发。谢谢了
不过其他各楼层的朋友也同样给予感谢,是你们给了这张贴人气,哈哈

最后我也要说,这个程序不会累坏编译器,编译也并没有错。哈哈
这道题在潭书的185页,编译器我用的是turbo2.0,虽然老点但用的人应该
还不少,毕竟千里之行,始于足下,基础打牢还是好,慢慢来,我不急,大家晚安 明见!

[此贴子已经被作者于2006-5-3 1:21:29编辑过]


程序 是一门语言的艺术,讲究学练读写!
2006-05-03 01:21
ZZCCY
Rank: 1
等 级:新手上路
帖 子:87
专家分:0
注 册:2006-5-1
收藏
得分:0 
11楼和12楼过讲了,我是新来的,来之后就看了《编程论坛生存手册》提问的智慧,所以这样写的,可能有点罗嗦下次精练点!

13楼的同学建议我函数不要写成那样,那应该写成什么样呢?

程序 是一门语言的艺术,讲究学练读写!
2006-05-03 13:54
快速回复:[求助]一道关于指针方面的程序问题
数据加载中...
 
   



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

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