| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 618 人关注过本帖
标题:本人刚学C不久,有一道问题想请教大侠!
只看楼主 加入收藏
hs625
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2010-5-30
结帖率:0
收藏
已结贴  问题点数:20 回复次数:5 
本人刚学C不久,有一道问题想请教大侠!
#include <stdio.h>
#include<stdlib.h>
struct stu
{
    int num;
    char *name;
    char sex;
    float score;}boy[5]={
           {101,"Li ping",'M',45},
        {102,"Zhang ping",'M',62.5},
        {103,"He fang",'F',92.5},
        {104,"Cheng ling",'F',87},
        {105,"Wang ming",'M',58},
      };                                  //这是定义了外部结构型数组
main()
{
    struct stu *ps;                       //定义了结构造数组指针                  
    void ave(struct stu *ps);             //定义了一个实参
    ps=boy;                               //将boy的首地址赋给PS结构造数组指针
    ave(ps);                              //这个是什么意思啊?(前面已经定了void ave(struct stu *ps); ave求平均的,为什么还要加这个)
}
void ave(struct stu *ps)                 //定义形参
{
    int c=0,i;
    float ave,s=0;
    for(i=0;i<5;i++,ps++)                  
      {
        s+=ps->score;                   //将是5个score的值相加
        if(ps->score<60) c+=1;          //记录小于60的个数赋给C
      }
    printf("s=%f\n",s);
    ave=s/5;                            //这个是得出的平均值返回给实参吧??
    printf("average=%f\ncount=%d\n",ave,c);
    system("pause");
}
搜索更多相关主题的帖子: ling 
2010-05-30 16:15
xiaomanaruto
Rank: 6Rank: 6
等 级:侠之大者
帖 子:79
专家分:443
注 册:2010-4-1
收藏
得分:5 
#include <stdio.h>
#include<stdlib.h>
struct stu
{
    int num;
    char *name;
    char sex;
    float score;}boy[5]={
           {101,"Li ping",'M',45},
        {102,"Zhang ping",'M',62.5},
        {103,"He fang",'F',92.5},
        {104,"Cheng ling",'F',87},
        {105,"Wang ming",'M',58},
      };                                 
main()
{
    struct stu *ps;                                       
    void ave(struct stu *ps);            
    ps=boy;                              
    ave(ps);                              //前面的void ave(struct stu *ps)是函数声明,而这一句是函数调用
}
void ave(struct stu *ps)                 
{
    int c=0,i;
    float ave,s=0;
    for(i=0;i<5;i++,ps++)                  
      {
        s+=ps->score;                  
        if(ps->score<60) c+=1;         
      }
    printf("s=%f\n",s);
    ave=s/5;                            //由于函数为void 型,所以没有返回值,函数的作用只是进行了值传递,由于传送的是地址,所以值发生了变化。  
printf("average=%f\ncount=%d\n",ave,c);
    system("pause");
}
2010-05-30 16:32
bccn250
Rank: 5Rank: 5
等 级:职业侠客
帖 子:154
专家分:379
注 册:2010-5-25
收藏
得分:5 
唉有人快一步就不说了


[ 本帖最后由 bccn250 于 2010-5-30 16:36 编辑 ]
2010-05-30 16:34
牛牛超人
Rank: 1
等 级:新手上路
帖 子:12
专家分:6
注 册:2010-5-8
收藏
得分:5 
我还没有达到楼主的水平,唉
2010-05-30 16:44
myhnuhai
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:3
帖 子:425
专家分:1725
注 册:2010-3-17
收藏
得分:5 
函数一般要声明,如果不生命的话默认为int型的,而且函数声明和调用不一样,刚开始时那只是声明了一个函数并没有调用,下面就进行函数的调用!空类型(void)的函数时没有返回值的直接在本函数中打印或输出!

不要让肮脏的记忆,迷失了原本纯洁的心灵!
2010-05-30 16:49
hs625
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2010-5-30
收藏
得分:0 
谢谢帮我解决问题,我是初学者以后还有问题请教大家。
2010-05-30 18:23
快速回复:本人刚学C不久,有一道问题想请教大侠!
数据加载中...
 
   



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

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