| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 970 人关注过本帖
标题:遇到个问题,这个程序错在哪?
只看楼主 加入收藏
yk13342038
Rank: 1
来 自:江苏无锡
等 级:新手上路
帖 子:8
专家分:0
注 册:2008-10-28
收藏
 问题点数:0 回复次数:14 
遇到个问题,这个程序错在哪?
本人系C语言新手,[font=微软雅黑]前两天写个程序,遇到问题,百思不得其解,希望各位高手指点迷津![/font]

/*输入十个学生的成绩求平均分*/
#include<stdio.h>
void main()
{
  float t,a();           //调用函数声明被调函数时不要写出形参类型吗?在形参
  int i;                 //      不是int型与字符型时难道也可以不用写吗?
  float score[10];
  printf("输入学生的成绩\n");
  for (i=0;i<10;i++)
    scanf("%f",&score[i]);
  t=a(score);
  printf("学生的平均成绩是\n%f.2",t);
}
float a(score)               //此处为什么一把形参去掉或改成别的就出错?
float score[10];
{
  int i;float v,sum=0.0;
  for (i=0;i<10;i++)
     sum+=score[i];
  v=sum/10;
  return(v);
}

这段在C++6.0 和TC3.0上都没有问题。但是本人有问题,见上面的注释处


下面是我认为对的程序,但是却错了……
#include<stdio.h>
void main()
{
  float t,a(float);             //此处我也是按照书上讲的所写,但是为什么错了??     
  int i;
  float score[10];
  printf("输入学生的成绩\n");
  for (i=0;i<10;i++)
    scanf("%f",&score[i]);
  t=a(score);
  printf("学生的平均成绩是\n%f.2",t);
}
float a(a)                         //按照书上说的此处我写个a,或在前面个float ,但是都不对
float score[10];
{
  int i;float v,sum=0.0;
  for (i=0;i<10;i++)
     sum+=score[i];
  v=sum/10;
  return(v);
}
 
急啊,望各位高手指点一下!!
搜索更多相关主题的帖子: include 
2008-10-28 21:05
yk13342038
Rank: 1
来 自:江苏无锡
等 级:新手上路
帖 子:8
专家分:0
注 册:2008-10-28
收藏
得分:0 
怎么没有人帮忙啊?
今天问老师,她说数组传递时要写出对应的什么什么,她没大说清楚
2008-10-29 12:02
zxwangyun
Rank: 4
来 自:云南
等 级:业余侠客
威 望:1
帖 子:232
专家分:299
注 册:2008-10-17
收藏
得分:0 
第一个程序:
#include<stdio.h>
void main()
{
  float a(float *score);
  float t;           
  int i;               
  float score[10];
  printf("输入学生的成绩\n");
  for (i=0;i<10;i++)
    scanf("%f",&score[i]);
  t=a(score);
  printf("学生的平均成绩是\n%.2f",t);
}
float a(float *score){
{
  int i;float v,sum=0.0;
  for (i=0;i<10;i++)
     sum+=score[i];
  v=sum/10;
  return(v);
}
}
2008-10-29 12:59
wentaiyou
Rank: 2
等 级:论坛游民
帖 子:68
专家分:17
注 册:2004-12-3
收藏
得分:0 
#include<stdio.h>
#define N 3

void main()
{
  float a(float x[]);
  int i;
  float score[N],t;
  printf("输入学生的成绩\n");
  for (i=0;i<N;i++)
    scanf("%f",&score[i]);
   
  t=a(score);
  printf("学生的平均成绩是\n%.2f\n",t);
}


float a(float x[])
{
  int i;
  float v,sum=0.0;
  for (i=0;i<N;i++)
     sum+=x[i];

  v=sum/N;

  return(v);
}


这样写就可以了.

假如回到过去.我能做些什么? 还是和现在这样有时间没事情?
2008-10-29 13:00
yk13342038
Rank: 1
来 自:江苏无锡
等 级:新手上路
帖 子:8
专家分:0
注 册:2008-10-28
收藏
得分:0 
感谢这位哥们!!
其实我的意思不是想要正确的程序,想问的是,数组作为实参传递时是不是要明确的写出来?
这位高手如果看到的话,望说明一下!
2008-10-30 21:08
名扬低调
Rank: 1
等 级:新手上路
帖 子:92
专家分:0
注 册:2008-10-12
收藏
得分:0 
我都没有看明白你在问什么,可能是我理解能力..?

无声的坚持或许沉默也是一种执着.!  By:名扬低调
变量的指针和指向变量的指针变量.!
2008-10-30 21:44
iamah
Rank: 1
等 级:新手上路
威 望:1
帖 子:69
专家分:0
注 册:2008-10-31
收藏
得分:0 
假设一个数组array[10];

用数组做形参调用

若调用函数在main()函数之前,得要声明,格式为

函数返回值类型 函数名(数组类型 array[]);    /*"array[]"中括号内可以不写明个数*/
2008-10-31 12:04
风居住的街道
Rank: 1
等 级:新手上路
帖 子:374
专家分:0
注 册:2008-10-24
收藏
得分:0 
LZ的写法是标准前的老声明格式,也叫K&R C。
该版本规定函数声明可以不用写参数数量及类型,定义先写参数,然后在函数括号后以声明模式写明参数,最后加分号
LZ想想看自己有没有遵守这个规则。
要么完全遵守,要么完全不遵守,像LZ那样只遵守一半,当然没法通过编译啦
2008-10-31 13:12
yk13342038
Rank: 1
来 自:江苏无锡
等 级:新手上路
帖 子:8
专家分:0
注 册:2008-10-28
收藏
得分:0 
明白了,感谢各位!!
2008-10-31 20:42
嬿·嘄·骊·戨
Rank: 2
来 自:天府之国
等 级:论坛游民
帖 子:84
专家分:25
注 册:2008-10-16
收藏
得分:0 
把10个成绩加起来``再除以10不就可以了吗``
2008-10-31 20:44
快速回复:遇到个问题,这个程序错在哪?
数据加载中...
 
   



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

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