、__乔夜 发表于 2013-10-18 22:58:00

运行起来总是有问题,大家帮忙看看吧

本帖最后由 、__乔夜 于 2013-10-18 23:17 编辑

#include <stdio.h>

struct
{
      int num;
      char name;
      char sex;
      char job;
      union
      {
            int clas;
            char position;
      }type;   
}person;

int main()
{

      int i;
      for(i=0;i<2;i++)
      {

            printf("请输入号码:");
            scanf("%d",&person.num);

            printf("请输入姓名:");
            scanf("%s",&person.name);

            printf("请输入性别:");
            scanf("%c",&person.sex);

            printf("请输入职业:");
            scanf("%c",&person.job);   //这样为什么会出错?!!

            if(person.job=='s')
            {
                  printf("请输入班级:");
                  scanf("%d",&person.type.clas);
            }else
            {
                  if(person.job=='t')
                  {
                        printf("请输入职位:");
                        scanf("%s",person.type.position);
                  }else
                  {
                        printf("输入错误!");
                  }
            }
      }
      printf("\n");
      printf("No.   name   sex job class/position\n");
      for(i=0;i<2;i++)
      {
            if(person.job=='s')
            {
                  printf("%-6d%-10s%-4c%-4c%-10d\n",person.num,person.name,
                        person.sex,person.job,person.type.clas);
            }else
            {
                  printf("%-6d%-10s%-4c%-4c%-10s\n",person.num,person.name,
                        person.sex,person.job,person.type.position);
            }

      }
      return 0;
}

为什么每次输入到“请输入姓名”的时候就直接跳到“请输入职业”啊?:cry

牡丹花下死做鬼 发表于 2013-10-19 00:28:02

你居然没报错我复制过去编译下近20个错误

1138199401 发表于 2013-10-19 08:46:58

#include <stdio.h>

struct
{
        int num;
        char name;
        char sex;
        char job;
       
        union
        {
                int clas;
                char position;
        }type;
       
}person;//定义错误,不是person.

int main()
{
        int i;
        for(i=0;i<2;i++)
        {
                printf("请输入号码:");
                scanf("%d",&person.num);
               
                printf("请输入姓名:");
                scanf("%s",&person.name);
               
                printf("请输入性别:");
                scanf("%c",&person.sex);
               
                printf("请输入职业:");
                scanf("%c",&person.job);   //这样为什么会出错?!!
               
                if(person.job=='s')
                {
                        printf("请输入班级:");
                        scanf("%d",&person.type.clas);
                }
                else
                {
                        if(person.job=='t')
                        {
                                printf("请输入职位:");
                                scanf("%s",person.type.position);
                        }
                        else
                        {
                                printf("输入错误!");
                        }
                }
        }
        printf("\n");
        printf("No.   name   sex job class/position\n");
       
        for(i=0;i<2;i++)
        {
                if(person.job=='s')
                {
                        printf("%-6d%-10s%-4c%-4c%-10d\n",person.num,person.name,
                                person.sex,person.job,person.type.clas);
                }
                else
                {
                        printf("%-6d%-10s%-4c%-4c%-10s\n",person.num,person.name,
                                person.sex,person.job,person.type.position);
                }
               
        }
        return 0;
}

shenweixin 发表于 2013-10-26 22:09:53

太多英文,看不懂

孩子,跟我走、 发表于 2013-12-14 18:13:03

多去了解一下scanf在用它吧

hate茶叶蛋 发表于 2013-12-14 21:02:14

结构体里面有共用体,类似于柔性数组

动感超人xx 发表于 2014-5-13 16:05:39

混鱼币的~~~~~~~~~~~

Kayllen 发表于 2014-5-14 17:32:48

混鱼币的~~~~~~~~~~~

huha88 发表于 2014-6-30 15:20:29

还没学到这里,来拿奖励!!!

oggplay 发表于 2014-6-30 16:21:36


#include <stdio.h>

typedef struct person {
      int num;
      char name;
      char sex;
      char job;
      
      union
      {
                int clas;
                char position;
      }type;
      
}Person,*ptr_person;




int
main() {
      Person person;
      ptr_person s=&person;
      int i;
      printf("请输入号码:");
      scanf("%d",&person.num);
               
      printf("请输入姓名:");
      scanf("%s",s->name);
               
      printf("请输入性别:");
      scanf("%s",&person.sex);
               
      printf("请输入职业:");
      scanf("%s",&person.job);
               
      if(person.job=='s')
             {
                     printf("请输入班级:");
                     scanf("%d",&(person.type.clas));
                }
      else
             {
                  if(person.job=='t')
                     {
                              printf("请输入职位:");
                              scanf("%s",person.type.position);
                        }
                   else
                        {
                              printf("输入错误!\n");
                        }
               
      
      printf("\n");
      printf("No.   name   sex job class/position\n");
      
             if(person.job=='s')
                {
                         printf("%-6d%-10s%-4c%-4c%-10d\n",person.num,person.name,
                              person.sex,person.job,person.type.clas);
                }
                else
                {
                        printf("%-6d%-10s%-4c%-4c%-10d\n",person.num,person.name,
                              person.sex,person.job,s->type.clas);
                }
               
      }
      return 0;
}
你输入2次干嘛,都是同一个结构体,不是自取其辱么??
页: [1]
查看完整版本: 运行起来总是有问题,大家帮忙看看吧