返回信息流求平均数的一道题,如下两种答案都可以吗还是只有(2)对
(1)float fun ( float *a , int n )
{
float num=0.00,avr;
for(;*a!='\0';a++)
num+=*a;
avr=num/n;
return avr;
}
(2)
float fun ( float *a , int n )
{
int i;
float av=0.0;
for(i=0; i<n;i++) /*求分数的总和*/
av=av+a[i];
return(av/n); /*返回平均值*/
}
这是一条镜像帖。来源:北邮人论坛 / cpp / #92437同步于 2016/7/8
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖
二级刷题求助
qxx196188
2016/7/8镜像同步11 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
【 在 qxx196188 的大作中提到: 】
: 第一个有正常输出结果
“正常输出结果”纯属偶然。没有什么东西可以保证a指向的数组不一定以0结尾。函数的参数传入了数组的头指针和大小n,应该按n来决定读多少。这次能运行是“碰巧”这个数组的最后一个元素的下一个位置存着0。
另外*a的类型是float型,但'\0'是int型,这样比较虽然相当于和0.0f比较,但不是正确的写法。
【 在 nuanyangyang 的大作中提到: 】
:
: “正常输出结果”纯属偶然。没有什么东西可以保证a指向的数组不一定以0结尾。函数的参数传入了数组的头指针和大小n,应该按n来决定读多少。这次能运行是“碰巧”这个数组的最后一个元素的下一个位置存着0。
: 另外*a的类型是float型,但'\0'是int型,这样比较虽然相当于和0.0f比较,但不是正确的写法。
再求教下楼主,那考试时候如果写(1)的这种偶然情况能给分吗?你有考过吗?
肯定不会。毕竟是错误的程序。上一次考c语言是十年前的事了,今年我给学生判卷子。不过,是Haskell语言,类型比c强得多,根本不可能犯这种错误。
【 在 qxx196188 的大作中提到: 】
:
: 再求教下楼主,那考试时候如果写(1)的这种偶然情况能给分吗?你有考过吗?
【 在 nuanyangyang 的大作中提到: 】
: 肯定不会。毕竟是错误的程序。上一次考c语言是十年前的事了,今年我给学生判卷子。不过,是Haskell语言,类型比c强得多,根本不可能犯这种错误。
:
膜拜!谢谢楼主
【 在 nuanyangyang 的大作中提到: 】
: 肯定不会。毕竟是错误的程序。上一次考c语言是十年前的事了,今年我给学生判卷子。不过,是Haskell语言,类型比c强得多,根本不可能犯这种错误。
:
楼主我又有个问题求教
题目是统计s所指字符串中数字字符个数
答案是这样的int fun(char *s)
{ int n=0;
char *p;
for(p=s;*p!='\0';p++)
if((*p>='0')&&(*p<='9'))
n++;
return n;
}
我写的下面这样出不来结果,但是我不知道我错哪里了
int fun(char *s)
{
int n=0;
while(*s!='\0'){
if((*s>='0')&&(*s<='9')){
n++;
s++;
}
}
return n;
}
nNums = length . filter isNum
信Haskell得永生。不要再在c里挣扎了。
【 在 qxx196188 的大作中提到: 】
: 楼主我又有个问题求教
: 题目是统计s所指字符串中数字字符个数
: 答案是这样的int fun(char *s)
: ...................
【 在 nuanyangyang 的大作中提到: 】
: nNums = length . filter isNum
: 信Haskell得永生。不要再在c里挣扎了。
不得已啊,其实是为了考国家电网考二级,报名时候北京都已经结束了,好不容易在河北报了名