| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1067 人关注过本帖
标题:结构体的输出
只看楼主 加入收藏
凉生泪Vin
Rank: 1
等 级:新手上路
帖 子:12
专家分:5
注 册:2015-11-4
结帖率:75%
收藏
已结贴  问题点数:5 回复次数:4 
结构体的输出
#include<stdio.h>
struct Date
{
    int month;
    int year;
};
struct student_type
{
    char num[12];
    char name[20];
    struct Date birthday;
    int age;
    char sex[2];
    float score[3];
    float average;
};
int main()
{
    struct student_type stu;
    void data_in(struct student_type stu,int n);
    void data_put(struct student_type stu,int n);
    data_in(stu,1);
    data_put(stu,1);
    return 0;   
}
void data_in(struct student_type stu,int n)
{
        printf("请输入学生的信息:\n");
        printf("学号:");
        scanf("%s",&stu.num);
        printf("姓名:");
        getchar();
        gets(stu.name);
        printf("出生年:");
        scanf("%d",&stu.birthday.year);
        printf("出生月:");
        scanf("%d",&stu.birthday.month);
        printf("性别:");
        getchar();
        gets(stu.sex);
        printf("第一门课成绩:");
        scanf("%f",&stu.score[1]);
        printf("第二门课成绩:");
        scanf("%f",&stu.score[2]);
        printf("第三门课成绩:");
        scanf("%f",&stu.score[3]);
}   
void data_put(struct student_type stu,int n)
{
    int i;
    float aver;
    aver=(stu.score[1]+stu.score[2]+stu.score[3])/3;
    printf("   学号    姓名  出生年 出生月 性别 三门平均\n");   
    printf("%-20s%-20s%-4d%-2d%2c%4f",stu.num,stu.name,stu.birthday.year,stu.birthday.month,stu.sex,aver);
}
    为什么不能输出呢?感觉都没错啊。
   
搜索更多相关主题的帖子: average include return 结构体 信息 
2016-01-05 20:16
凉生泪Vin
Rank: 1
等 级:新手上路
帖 子:12
专家分:5
注 册:2015-11-4
收藏
得分:0 
怎么没人呢
2016-01-05 20:58
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:3 
void data_in(struct student_type stu,int n)

授人以渔,不授人以鱼。
2016-01-05 21:00
ms268el8
Rank: 4
等 级:业余侠客
威 望:1
帖 子:84
专家分:299
注 册:2015-11-30
收藏
得分:3 
1.c語言數組由0開始
 scanf("%f",&stu.score[3]);  
 aver=(stu.score[1]+stu.score[2]+stu.score[3])/3;
所以這個stu.score[3]是什麼東東
2. void data_in(struct student_type stu,int n)
這個函數的stu和main中的stu不是同一變數。它們不共用記憶體。所以要麽回傳data_in函數的stu給main,像這樣struct student_type data_in(struct student_type stu,int n)
在data_in函數的最後return stu;
在main主函數這樣呼叫stu=data_in(stu, 1);
要麽就用指針間接共用記憶體void data_in(struct student_type *stu,int n)
這樣呼叫data_in(&stu, 1);

[此贴子已经被作者于2016-1-5 21:27编辑过]

2016-01-05 21:15
ms268el8
Rank: 4
等 级:业余侠客
威 望:1
帖 子:84
专家分:299
注 册:2015-11-30
收藏
得分:0 
還有不要用gets這種危險的東東,用其他輸入函數如fgets
2016-01-05 21:23
快速回复:结构体的输出
数据加载中...
 
   



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

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