大哥们,跪求详细解答!谢谢

jxn98310 2010-12-13 11:08:49
#include<stdio.h>
struct student
{
int num;
char *name;
char sex;
float score;
};
int main(void)
{
struct student inf[5]=
{
{98310,"姜雪年","B",100},
{98311,"吕庆","B",99},
{98312,"官瑞铭","B",95},
{98313,"张时成","B",91},
{98314,"朱诗奇","G",100},
};
printf("%d %s %c %4.1f",inf[0].num,inf[0].name,inf[0].sex,inf[0].score);
getch();
}


为什么 inf[0].sex 不能输出

还有就是有
14 C:\Documents and Settings\Administrator\桌面\结构体.c [Warning] initialization makes integer from pointer without a cast

错误

还有为啥要用 char *name; char sex;为啥不用

...全文
144 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
wizard_tiger 2010-12-20
  • 打赏
  • 举报
回复
"B"是一个字符串,有2个字符,末尾有一个'\0'字符。
赋给一个char型变量会出错。
艾莎云 2010-12-19
  • 打赏
  • 举报
回复
还有为什么Int main()没有return 0 啊,这样可不好!
艾莎云 2010-12-19
  • 打赏
  • 举报
回复
不知道为什么 要把那个什么性别用“”,而不是‘’,既然是单字符不需要字符串,何况字符串没有用处,你必须与数组搭配使用,%s之类的联合使用即可
wasx1 2010-12-19
  • 打赏
  • 举报
回复
进来受教啦!!!!!!
flysnowhite 2010-12-13
  • 打赏
  • 举报
回复
既然定义为char sex;表明性别只能为字符'M'和'F'或者'B'和'G'了;你在赋值时用字符串进行赋值,"B”,当然不正确了。
jxn98310 2010-12-13
  • 打赏
  • 举报
回复
OK了

#include<stdio.h>
struct student
{
int num;
char *name;
char sex;
float score;
};
int main(void)
{
struct student inf[5]=
{
{98310,"姜雪年",'B',100},
{98311,"吕庆",'B',99},
{98312,"官瑞铭",'B',95},
{98313,"张时成",'B',91},
{98314,"朱诗奇",'G',100},
};
printf("%d %s %c %4.1f",inf[0].num,inf[0].name,inf[0].sex,inf[0].score);
getch();
}

已经解决了 谢谢您!
jxn98310 2010-12-13
  • 打赏
  • 举报
回复
14 C:\Documents and Settings\Administrator\桌面\结构体.c [Warning] initialization makes integer from pointer without a cast

问题解决了 但是 inf[0].sex 还是没输出
用户 昵称 2010-12-13
  • 打赏
  • 举报
回复
.sex是个char吧,你赋值的是一个char *,所以就有问题了。
qingkongxiaoyang 2010-12-13
  • 打赏
  • 举报
回复
char *name;//定义一个字符串
char sex;//定义一个字符
程序中定义错误,"B"编译即出错,应为'B'一个字符。
  • 打赏
  • 举报
回复
3楼给出了

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧