wdwhszw 发表于 2021-1-31 16:21:54

结构体输入问题

本帖最后由 wdwhszw 于 2021-1-31 17:28 编辑

请问大佬为什么明明代码里面是两个输入,但是程序框却会出错?

#include<stdio.h>
struct txl
{
    char mz;
    int dhhm;
};
void main()
{
    struct txl nb;
    int i,j;
    for(i = 0; i < 3;i++)
    {
      scanf("%d ", &nb.dhhm);
      gets(nb.mz);
    }
    for(j=0;j<3;j++)
    {
      printf("%s ",nb.mz);
      printf("%d\n",nb.dhhm);
    }
}

小甲鱼的铁粉 发表于 2021-1-31 16:27:57

本帖最后由 小甲鱼的铁粉 于 2021-1-31 16:29 编辑

#include<stdio.h>
struct txl
      {
                char mz;
                int dhhm;
      };
int main()
{
      
      struct txl nb;
      int i,j;
      for(i=0;i<3;i++)
      {
      scanf("%d%s",&nb.dhhm, nb.mz);
      }
      for(j=0;j<3;j++)
      {
                printf("%s",nb.mz);
                printf("   %d\n",nb.dhhm);
      }
}

wdwhszw 发表于 2021-1-31 16:28:59

小甲鱼的铁粉 发表于 2021-1-31 16:27


请问大佬为什么不能像我那样写?

小甲鱼的铁粉 发表于 2021-1-31 16:30:13

wdwhszw 发表于 2021-1-31 16:28
请问大佬为什么不能像我那样写?

你再看一下我刚修改过的吧,我那个错了

小甲鱼的铁粉 发表于 2021-1-31 16:31:26

本帖最后由 小甲鱼的铁粉 于 2021-1-31 16:32 编辑

你这样也可以,就是你创建的是数组,输入和输出就要有下标,你少了下标
#include<stdio.h>
struct txl
      {
                char mz;
                int dhhm;
      };
int main()
{
      
      struct txl nb;
      int i,j;
      for(i=0;i<3;i++)
      {
      scanf("%d",&nb.dhhm);//这里
                gets(nb.mz);//这里
      }
      for(j=0;j<3;j++)
      {
                printf("%s",nb.mz);//这里
                printf("   %d\n",nb.dhhm);//还有这里
      }
}

弓弦箭影 发表于 2021-1-31 16:32:18

定义了一个txl类型的结构体数组nb,它可以看做是3个结构体变量,分别为nb、nb、nb
对结构体变量的操作只能是nb.dhhm或者是nb.dhhm    或者是nb.dhhm

wdwhszw 发表于 2021-1-31 16:38:26

还是输入有问题,会跳过其中一个输入

wdwhszw 发表于 2021-1-31 16:43:12

把结构体里面的int换成char才没有问题,为什么int就会有问题

qiuyouzhi 发表于 2021-1-31 16:56:40

wdwhszw 发表于 2021-1-31 16:43
把结构体里面的int换成char才没有问题,为什么int就会有问题

你试试我改过的,没问题
#include<stdio.h>
struct txl
{
    char mz;
    int dhhm;
};
void main()
{
    struct txl nb;
    int i,j;
    for(i = 0; i < 3;i++)
    {
            scanf("%d ", &nb.dhhm);
      gets(nb.mz);
    }
    for(j=0;j<3;j++)
    {
      printf("%s ",nb.mz);
      printf("%d\n",nb.dhhm);
    }
}

wdwhszw 发表于 2021-1-31 17:06:24

qiuyouzhi 发表于 2021-1-31 16:56
你试试我改过的,没问题

请问大佬你改过了哪些地方,我有一些没有看出来

qiuyouzhi 发表于 2021-1-31 17:31:04

wdwhszw 发表于 2021-1-31 17:06
请问大佬你改过了哪些地方,我有一些没有看出来

一部分是5楼所说的,然后给你改了下输入的格式
页: [1]
查看完整版本: 结构体输入问题