vs2019……引发异常。
#include<stdio.h>int main()
{
struct date
{
int month;
int day;
int year;
};
struct boy1
{
int num;
char* name;
char sex;
struct date birthday;
float score;
}boy1,boy2;
printf("输入年月日:\n");
scanf_s("%d %d %d", &boy1.birthday.year, &boy1.birthday.month, &boy1.birthday.day);
printf("输入学号,名字,性别,分数:\n");
scanf_s("%d %s %c %f", &boy1.num, &boy1.name, &boy1.sex, &boy1.score);
boy2 = boy1;
printf("学号:%d\n姓名:%s\n性别:%c\n分数:%f\n", boy2.num, boy2.name, boy2.sex, boy2.score);
printf("出生年月是:%d年%d月%d日。", boy2.birthday.year, boy2.birthday.month, boy2.birthday.day);
} {:10_266:} 错误的地方修改了,并做了注释
#include<stdio.h>
int main()
{
struct date
{
int month;
int day;
int year;
};
struct boy1
{
int num;
char name;//这里你定义的是指针,不是char,没有给指针赋值,是不能用指针读取值的
char sex;
struct date birthday;
float score;
}boy1,boy2;
printf("输入年月日:\n");
scanf_s("%d %d %d", &boy1.birthday.year, &boy1.birthday.month, &boy1.birthday.day);
printf("输入学号,名字,性别,分数:\n");
scanf_s("%d %s %c %f", &boy1.num, boy1.name, &boy1.sex, &boy1.score);//%s需要给一个char地址或者一个char数组名,但是你给的是一个指针地址
boy2 = boy1;
printf("学号:%d\n姓名:%s\n性别:%c\n分数:%f\n", boy2.num, boy2.name, boy2.sex, boy2.score);
printf("出生年月是:%d年%d月%d日。", boy2.birthday.year, boy2.birthday.month, boy2.birthday.day);
} 这个问题前两天有人问过,也有人回答过,去论坛翻翻看,或许你这边的答案还没出来,那边你自己已经找到了答案了 sunrise085 发表于 2020-10-30 14:07
错误的地方修改了,并做了注释
我尝试了一下,不管怎么输入,都没办法显示性别。 并且分数,一直是0.0000 Dadong丶 发表于 2020-10-30 17:22
我尝试了一下,不管怎么输入,都没办法显示性别。 并且分数,一直是0.0000
哦,我想起来怎么一回事儿了。
应该是VS2019中scanf改为了scanf_s,后者输入%s的时候是需要给出长度的。所以你不能这样输入,把%s那个单独拿出来试试
反正这个程序用scanf的时候没任何错误
页:
[1]