鱼C论坛

 找回密码
 立即注册
查看: 6318|回复: 6

【结构体+共用体】真心求教~为什么教师的信息会输不出 ?

[复制链接]
发表于 2016-8-9 13:11:29 | 显示全部楼层 |阅读模式

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

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

x
struct people
{
        int         no;0
        char name[20];
        char job;
        union
        {
                int  clas;
                char position[10];
        }pos;
};
int main()
{       
        int i;
        struct people peo[2];
        struct people *p;
        p = peo ;
       
       
        for( i = 0;i<2 ;)
        {   
                printf("输入第%d个人的信息\n",++i);
                scanf("%d %s %c",&p->no,&p->name,&p->job);
                if(p->job == 'T')
                {
                        scanf("%s",&p->pos.position);
                }
                else
                {
                        scanf("%d",&p->pos.clas);
                }
        }                                                        //输入
        printf("No.\t\tname\t\tjob\t\tclass/position\n");
        for( i = 0 ;i<2 ;i++)
        {   
                if( p->job == 'T')
                {
                        printf("%d\t\t%s\t\t%c\t\t%s\n",p->no ,p->name ,p->job ,p->pos.position);
                }
                else
                {
                        printf("%d\t\t%s\t\t%c\t\t%d\n",p->no ,p->name ,p->job ,p->pos.clas);
                }
        }                       
                                                                     //输出
}
5.JPG
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-8-9 13:41:30 | 显示全部楼层
不懂帮顶。。。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-8-9 14:17:00 | 显示全部楼层
召唤啊~~~
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2016-8-9 15:10:58 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-8-9 16:45:24 | 显示全部楼层
指针没有加加(++)
为什么要用指针呢?
  1. #include <stdio.h>

  2. struct people
  3. {
  4.         int no;
  5.         char name[20];
  6.         char job;
  7.        
  8.         union
  9.         {
  10.                 int  clas;
  11.                 char position[10];
  12.         }pos;
  13. };

  14. #if(0)
  15. int main(void)
  16. {
  17.         int i;
  18.         struct people peo[2];
  19.         struct people *p;
  20.         p = peo;


  21.         for(i = 0; i < 2;)
  22.         {
  23.                 printf("输入第%d个人的信息\n", ++i);
  24.                 scanf("%d %s %c", &p->no, &p->name, &p->job);
  25.                 if(p->job == 'T')
  26.                 {
  27.                         scanf("%s", &p->pos.position);
  28.                 }
  29.                 else
  30.                 {
  31.                         scanf("%d", &p->pos.clas);
  32.                 }
  33.                 p++;
  34.         }

  35.         p = peo;
  36.         printf("No.\t\tname\t\tjob\t\tclass/position\n");
  37.         for(i = 0; i < 2; i++)
  38.         {
  39.                 if(p->job == 'T')
  40.                 {
  41.                         printf("%d\t\t%s\t\t%c\t\t%s\n", p->no, p->name, p->job, p->pos.position);
  42.                 }
  43.                 else
  44.                 {
  45.                         printf("%d\t\t%s\t\t%c\t\t%d\n", p->no, p->name, p->job, p->pos.clas);
  46.                 }
  47.                 p++;
  48.         }
  49.         //输出

  50.         return 0;
  51. }
  52. #endif

  53. int main(void)
  54. {
  55.         int i;
  56.         struct people peo[2];

  57.         for(i = 0; i < 2; i++)
  58.         {
  59.                 printf("输入第%d个人的信息\n", i + 1);
  60.                 scanf("%d %s %c", &peo[i].no, &peo[i].name, &peo[i].job);
  61.                 if(peo[i].job == 'T')
  62.                 {
  63.                         scanf("%s", &peo[i].pos.position);
  64.                 }
  65.                 else
  66.                 {
  67.                         scanf("%d", &peo[i].pos.clas);
  68.                 }
  69.         }

  70.         printf("No.\t\tname\t\tjob\t\tclass/position\n");
  71.         for(i = 0; i < 2; i++)
  72.         {
  73.                 if(peo[i].job == 'T')
  74.                 {
  75.                         printf("%d\t\t%s\t\t%c\t\t%s\n", peo[i].no, peo[i].name, peo[i].job, peo[i].pos.position);
  76.                 }
  77.                 else
  78.                 {
  79.                         printf("%d\t\t%s\t\t%c\t\t%d\n", peo[i].no, peo[i].name, peo[i].job, peo[i].pos.clas);
  80.                 }
  81.         }
  82.         //输出

  83.         return 0;
  84. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2016-8-9 19:56:43 | 显示全部楼层
人造人 发表于 2016-8-9 16:45
指针没有加加(++)
为什么要用指针呢?

是因为书上说指针可以快一点所以我想试试指针可不可以。还有成功了,谢谢啊!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-8-9 20:20:22 | 显示全部楼层
囧Sir 发表于 2016-8-9 19:56
是因为书上说指针可以快一点所以我想试试指针可不可以。还有成功了,谢谢啊!

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-16 06:24

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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