鱼C论坛

 找回密码
 立即注册
查看: 973|回复: 3

[已解决]结构体BUG求助!!!

[复制链接]
发表于 2020-9-21 22:12:39 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#include<stdio.h>

void print(int k,struct information y);

struct time
{
        int year;
        int month;
        int day;

};

struct information
{
       
        char name[20];
        char sex;
        int age;
        struct time birthday;

}student[3];

main()
{
        struct information* p;
        p = student;
        int i;
        for (i = 1; i < 4; i++)
        {
                printf("input %d name:", i);
                scanf_s("%s", &p->name, 20);
                getchar(1);
                printf("input %d sex:", i);
                scanf_s("%c", &p->sex, 1);
                getchar(1);
                printf("input %d age:", i);
                scanf_s("%d", &p->age);
                printf("input %d birthday year:", i);
                scanf_s("%d", &p->birthday.year);
                printf("input %d birthday month:", i);
                scanf_s("%d", &p->birthday.month);
                printf("input %d birthday day:", i);
                scanf_s("%d", &p->birthday.year);
                p++;     //指针P加一跨度为结构体变量数组下一元素   student[0],student[1],student[2]


        }

        print(1, student[0]);
        print(2, student[1]);
        print(3, student[2]);
}

        void print(int k, struct information y)
        {
                printf("student%d information:\n", k);
                printf("name is:%s\n", y.name);
                printf("sex is:%c\n", y.sex);
                printf("age is:%d\n", y.age);
                printf("birthday is:%d-%d-%d\n", y.birthday.year, y.birthday.month, y.birthday.day);
               

        }



程序报错调用函数时形参与实参类型不一致,但程序可运行。



运行结果:
input 1 name:yangke
input 1 sex:w
input 1 age:13
input 1 birthday year:1999
input 1 birthday month:3
input 1 birthday day:25
input 2 name:zouyifan
input 2 sex:m
input 2 age:18
input 2 birthday year:1998
input 2 birthday month:6
input 2 birthday day:12
input 3 name:zhengquan
input 3 sex:m
input 3 age:15
input 3 birthday year:1997
input 3 birthday month:19
input 3 birthday day:5
student1 information:
name is:yangke
sex is:w
age is:13
birthday is:25-3-0
student2 information:
name is:zouyifan
sex is:m
age is:18
birthday is:12-6-0
student3 information:
name is:zhengquan
sex is:m
age is:15
birthday is:5-19-0


根据运行结果看,除了出生年与日,其余数据均能正常输入输出,求大神破解,谢谢。
最佳答案
2020-9-22 08:46:44
这里错了
  printf("input %d birthday day:", i);
  scanf_s("%d", &p->birthday.year);
应该是
  scanf_s("%d", &p->birthday.day);
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-9-22 08:46:44 | 显示全部楼层    本楼为最佳答案   
这里错了
  printf("input %d birthday day:", i);
  scanf_s("%d", &p->birthday.year);
应该是
  scanf_s("%d", &p->birthday.day);
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-9-22 19:41:07 | 显示全部楼层
xieglt 发表于 2020-9-22 08:46
这里错了
  printf("input %d birthday day:", i);
  scanf_s("%d", &p->birthday.year);

这个地方改了,运行结果看上去没有问题了。但是调用函数那还是提示的实参与形参类型不兼容,程序可运行。大佬能分析下嘛
        print(1, student[0]);
        print(2, student[1]);
        print(3, student[2]);
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-9-22 19:42:11 | 显示全部楼层
本帖最后由 405794672 于 2020-9-25 19:17 编辑

人不在就算了哈
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-13 02:50

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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