| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 599 人关注过本帖
标题:关于结构体中如何计算的问题
只看楼主 加入收藏
向上的小树
Rank: 2
来 自:湖南~岳阳
等 级:论坛游民
帖 子:41
专家分:30
注 册:2013-12-26
结帖率:40%
收藏
已结贴  问题点数:20 回复次数:8 
关于结构体中如何计算的问题
#include <stdio.h>
struct student
{
    int num;
    char name[21];
    char sex;
    int math;
    int english;
    int c;
    int ave;
};
struct student ave(struct student a,struct student b,struct student c)
{
    struct student zl;
    z1.ave=stu1.math+stu1.english+stu1.c;
    return z1;
}
int main(void)
{
    int average;
    struct student stu1;
    stu1.num=4004;
    stu1.sex='M';
    printf("num,name,sex,math,english,c\n");
    scanf("%s",stu1.name);
    scanf("%d%d%d",&stu1.math,&stu1.english,&stu1.c);
    average=ave(stu1.math,stu1.english,stu1.c);
    printf("学号    名字    性别    数学    英语    c语言    平均分\n");
    printf("%d    %s    %3c    %3d    %3d    %3d    %3d\n",stu1.num,stu1.name,stu1.sex,stu1.math,stu1.english,stu1.c,average);
}
各位好,我打算在这个程序中把数学、英语、c语言三门课的平均成绩求出来,但是试了好久还是出错,特来求教!
搜索更多相关主题的帖子: english average include return 结构体 
2013-12-26 20:41
紫歆钥風
Rank: 2
等 级:论坛游民
帖 子:8
专家分:14
注 册:2013-12-19
收藏
得分:10 
你的struct student ave函数返回值是struct student 类型,而在调用时average是int型的,类型不一样。你试试把求平均值的函数改成
int ave(int stu1.math,int stu1.english,int stu1.c)
{
    int a;
    a=(stu1.math+stu1.english+stu1.c)/3;
    return a;
}

且歌且行
2013-12-26 20:56
pauljames
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:千里冰封
威 望:9
帖 子:1555
专家分:10000
注 册:2011-5-8
收藏
得分:10 
在函数入口和返回处加调试信息

经常不在线不能及时回复短消息,如有c/单片机/运动控制/数据采集等方面的项目难题可加qq1921826084。
2013-12-27 07:15
向上的小树
Rank: 2
来 自:湖南~岳阳
等 级:论坛游民
帖 子:41
专家分:30
注 册:2013-12-26
收藏
得分:0 
回复 3楼 pauljames
#include <stdio.h>
struct student
{
    int num;
    char name[21];
    char sex;
    int math;
    int english;
    int c;
    int ave;
};
int ave(int stu1.math,int stu1.english,int stu1.c)  // C:\Documents and Settings\K01\桌面\2.c(12) : error C2143: syntax error : missing ')' before '.'

{
    int zl;
    z1=stu1.math+stu1.english+stu1.c;
    return z1;
}int main(void)
{
    int average;
    struct student stu1;
    stu1.num=4004;
    stu1.sex='M';
    printf("num,name,sex,math,english,c\n");
    scanf("%s",stu1.name);
    scanf("%d%d%d",&stu1.math,&stu1.english,&stu1.c);
    average=ave(stu1.math,stu1.english,stu1.c);
    printf("学号    名字    性别    数学    英语    c语言    平均分\n");
    printf("%d    %s    %3c    %3d    %3d    %3d    %3d\n",stu1.num,stu1.name,stu1.sex,stu1.math,stu1.english,stu1.c,average);
}
按楼上的说法稍微改了一下,但还是有错误,提示为缺少 “ )”

。。。。。。一定要用代码敲出自己的牛奶和面包,加油。。。。。。。
2013-12-28 20:20
向上的小树
Rank: 2
来 自:湖南~岳阳
等 级:论坛游民
帖 子:41
专家分:30
注 册:2013-12-26
收藏
得分:0 
回复 2楼 紫歆钥風
好像还是不对,不过还是谢谢你!

。。。。。。一定要用代码敲出自己的牛奶和面包,加油。。。。。。。
2013-12-28 20:21
daisukeray
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2014-1-3
收藏
得分:0 
#include <stdio.h>
struct student
{
    int num;
    char name[21];
    char sex;
    int math;
    int english;
    int c;
    int ave;
};
float ave(int a,int b,int c)
{
  
  return (a+b+c)/3;

}
int main(void)
{
    int average;
    struct student stu1;
   
    stu1.sex='M';
    printf("num,name,sex,math,english,c\n");
    printf("num:");scanf("%d",stu1.num);
    printf("name:");scanf("%s",stu1.name);
    printf("math english c score:");scanf("%d%d%d",&stu1.math,&stu1.english,&stu1.c);
    average=ave(stu1.math,stu1.english,stu1.c);
    printf("学号    名字    性别    数学    英语    c语言    平均分\n");
    printf("%d    %s    %3c    %3d    %3d    %3d    %3d\n",stu1.num,stu1.name,stu1.sex,stu1.math,stu1.english,stu1.c,average);
    getch();
}
2014-01-03 22:42
BCCNMelo2013
Rank: 1
等 级:新手上路
帖 子:6
专家分:3
注 册:2013-12-28
收藏
得分:0 
#include <stdio.h>
 struct student
 {
     int num;
     char name[21];
     char sex;
     int math;
     int english;
     int c;
     int ave;
 };
 float ave(struct student stu1)
 {
     float z1;
     z1=stu1.math+stu1.english+stu1.c;
     return z1;
 }
 int main(void)
 {
     float average;
     struct student stu1;
     printf("num,name,sex,math,english,c\n");
     scanf("%d %s %c %d %d %d",&stu1.num,stu1.name,&stu1.sex,&stu1.math,&stu1.english,&stu1.c);
     average=ave(stu1);
     average=average/3.0;
     printf("学号    名字    性别    数学    英语    c语言    平均分\n");
     printf("%d    %s    %c    %d    %d    %d    %f\n",stu1.num,stu1.name,stu1.sex,stu1.math,stu1.english,stu1.c,average);
 }
2014-01-04 20:13
BCCNMelo2013
Rank: 1
等 级:新手上路
帖 子:6
专家分:3
注 册:2013-12-28
收藏
得分:0 
我的编译器运行没问题  有问题再问
2014-01-04 20:14
向上的小树
Rank: 2
来 自:湖南~岳阳
等 级:论坛游民
帖 子:41
专家分:30
注 册:2013-12-26
收藏
得分:0 
回复 8楼 BCCNMelo2013
嗯,是对的,谢谢你的帮忙!

。。。。。。一定要用代码敲出自己的牛奶和面包,加油。。。。。。。
2014-01-06 16:19
快速回复:关于结构体中如何计算的问题
数据加载中...
 
   



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

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