幻想森林

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 2974|回复: 5

[通用编程] 一个数组问题

[复制链接]

313

主题

1574

帖子

1万

积分

⑧专业

*永恒国度*

积分
14145
QQ
发表于 2007-2-8 22:43:45 | 显示全部楼层 |阅读模式
输入10个学生成绩,求平均成绩,将低于平均成绩的分数打印出来。
void readdata(float score[10]
{
int i;
for(i=0;i<10;i++)
scanf("%f",&score);
return;
}
float aver(float score[10])
{
float sum;
int i;
for(sum=0,i=0;i<10;i++)
sum=sum+score;
return(sum/10);
}
void print(float score[10],float aver)
{
int i;
for(i=0;i<10;i++)
if(score<aver)
printf("%8.2f",score);
return;
}
main()
{
void readdata(float score[10]);
float aver(float score[10]);
void print(float score[10],float aver);
float ave,score[10];
readdata(score);              我想问问从这行开始为什么把score改为score[10]就不能运行呢?
ave=aver(score);
printf("average=%6.2f\n",ave);
print(score,ave);
}
[img][/img] http://shop33698673.taobao.com被别人嫉妒,证明你优秀,嫉妒别人说明你无能
回复

使用道具 举报

88

主题

5419

帖子

214748万

积分

版主

S素世上最伟大最华丽

Rank: 7Rank: 7Rank: 7

积分
2147483647
QQ
发表于 2007-2-8 23:11:48 | 显示全部楼层
给函数传递数组就是传一个指向数组的指针...也就是数组的起始地址score...
score[10]是一个数(虽说是违规的)...
回复 支持 反对

使用道具 举报

136

主题

1751

帖子

548

积分

版主

Rank: 7Rank: 7Rank: 7

积分
548
发表于 2007-2-8 23:37:18 | 显示全部楼层
10个是0-9吧。
え~え~お!!!
回复 支持 反对

使用道具 举报

18

主题

428

帖子

5260

积分

⑦老手

在美工荒中挣扎的全能

积分
5260
QQ
发表于 2007-2-9 08:23:35 | 显示全部楼层
如果需要增加偏移的话,写类似于
readdata(score+4*sizeof(float));
这样的比较好……
回复 支持 反对

使用道具 举报

190

主题

1589

帖子

7万

积分

⑧专业

囙乚囙

积分
71347
发表于 2007-2-9 13:34:00 | 显示全部楼层
数组一早忘记了的人路过
狂人LV7:神秘兽(强化体)
回复 支持 反对

使用道具 举报

10

主题

93

帖子

1065

积分

⑥精研

积分
1065
QQ
发表于 2007-2-14 19:03:39 | 显示全部楼层
如果是C语言的话用数组做形参实际上编译器会把那个数组当作一个指针来用~而函数调用的时候实参应该对应形参的数据类型~数组的名字就是个地址常量~所以直接写数组名是正确的~如果加了[]运算符的话~编译器实际上是吧score[10]看成*(score+10)来算~*运算符是取内容~所以实参和形参不对应~当然会报错~而且调用最后一个元素应该写成score[9]吧~数组引用是从0开始的
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|幻想森林

GMT+8, 2024-5-1 12:45 , Processed in 0.029491 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表