鱼C论坛

 找回密码
 立即注册
查看: 4923|回复: 12

一个编程的问题,求助!

[复制链接]
发表于 2013-8-2 16:34:14 | 显示全部楼层 |阅读模式

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

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

x
  1. #include<stdio.h>

  2. struct
  3. {
  4.         int num;
  5.         char name[20];
  6.         char sex;
  7.         char job;
  8.         union
  9.         {
  10.                 int banji;
  11.                 char position;
  12.         }gz;
  13. }person[2];     //假设有2个人,人太多不好输入啊,亲~

  14. void main()
  15. {
  16.         int i;
  17.         for(i=0;i<2;i++)
  18.         {
  19.                 printf("请输入号码num:");
  20.                 scanf("%d",&person[i].num);
  21.                 printf("请输入姓名name:");
  22.                 scanf("%s",&person[i].name);
  23.                 printf("请输入性别sex(m/f):");
  24.                 scanf("%s",&person[i].sex);
  25.                 printf("请输入职业job(s/t):");
  26.                 scanf("%s",&person[i].job);
  27.                 if(person[i].job=='s')
  28.                 {
  29.                         printf("请输入班级banji:");
  30.                     scanf("%d",&person[i].gz.banji);
  31.                 }
  32.                 else if(person[i].job=='t')
  33.                 {
  34.                         printf("请输入职务position:");
  35.                     scanf("%s",&person[i].gz.position);
  36.                 }
  37.                 else
  38.                 {
  39.                         printf("\n该君不属于本系统处理范围(老师/学生)之内。。。。");
  40.                 }
  41.                 printf("\n");
  42.         }
  43.         printf("\n->**************************************************<-\n\n\n");
  44.         for(i=0;i<2;i++)
  45.         {
  46.                 if(person[i].job=='s')
  47.                 {
  48.                         printf("该学生信息如下:\n");
  49.                         printf("号码num:%d\n",person[i].num);
  50.                         printf("姓名name:%s\n",person[i].name);
  51.                         printf("性别sex:%c\n",person[i].sex);
  52.                         printf("职业job:%c\n",person[i].job);
  53.                         printf("班级banji:%d\n\n",person[i].gz.banji);
  54.                 }
  55.                 else if(person[i].job=='t')
  56.                 {
  57.                         printf("该老师信息如下:\n");
  58.                         printf("号码num:%d\n",person[i].num);
  59.                         printf("姓名name:%s\n",person[i].name);
  60.                         printf("性别sex:%c\n",person[i].sex);
  61.                         printf("职业job:%c\n",person[i].job);
  62.                         printf("职务position:%s\n\n",person[i].gz.position);
  63.                 }
  64.         }
  65. }
复制代码
QQ截图20130802163107.png 运行后是这样的,就老师的那个“职务”显示不出来,电脑提示如下: QQ截图20130802163359.png 求助!
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2013-8-2 17:27:08 | 显示全部楼层
char position;这个是字符不是字符数组啊亲,你用%s搞什么
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-8-3 10:58:48 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-8-3 11:04:52 | 显示全部楼层
小名明SIU 发表于 2013-8-2 17:27
char position;这个是字符不是字符数组啊亲,你用%s搞什么

我用%c的话只会显示第一个字符。。。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-8-3 14:42:09 | 显示全部楼层
大神们来帮忙啊,求助求助!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-8-3 14:43:13 | 显示全部楼层
小名明SIU 发表于 2013-8-2 17:27
char position;这个是字符不是字符数组啊亲,你用%s搞什么

请问不用%s的话,用什么?快教教我:cry
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-8-3 17:13:33 | 显示全部楼层
或许那个's'  应该是“s”,我只是门外汉,错了勿怪
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-8-3 17:27:35 | 显示全部楼层
char position;改为 char position[20];就好了
需要用一个数组来存放position
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-8-3 17:35:36 | 显示全部楼层
也可以首先给 position 非配动态存储空间 然后使用char* position  定义也行   否则你定义position时使用的是char  而输入是用的是%s会引起冲突。也就是你后面运行时出现的问题为什么会出现了!!希望我的回答会对你有帮助。另外感觉你的基础不是很牢固 对看看c语言基础的东西吧。要不反而对你以后的发展会有很大的坏处的。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-8-3 17:45:32 | 显示全部楼层
那就用char  position[20],这样就可以%s了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-8-3 18:36:23 | 显示全部楼层
q312102408 发表于 2013-8-3 17:13
或许那个's'  应该是“s”,我只是门外汉,错了勿怪

谢谢你~~~~~~~~~
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-8-3 18:37:28 | 显示全部楼层
513495404 发表于 2013-8-3 17:35
也可以首先给 position 非配动态存储空间 然后使用char* position  定义也行   否则你定义position时使用的 ...

谢谢,确实呢,因为书放在学校,我反而是在暑假学的~还是要看看书啊~
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-8-3 18:39:44 | 显示全部楼层
小名明SIU 发表于 2013-8-3 17:45
那就用char  position[20],这样就可以%s了

恩恩,谢谢~~~~~~~~~
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-7-16 11:02

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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