结构体输入问题
本帖最后由 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: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);
}
}
小甲鱼的铁粉 发表于 2021-1-31 16:27
请问大佬为什么不能像我那样写? wdwhszw 发表于 2021-1-31 16:28
请问大佬为什么不能像我那样写?
你再看一下我刚修改过的吧,我那个错了 本帖最后由 小甲鱼的铁粉 于 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);//还有这里
}
} 定义了一个txl类型的结构体数组nb,它可以看做是3个结构体变量,分别为nb、nb、nb
对结构体变量的操作只能是nb.dhhm或者是nb.dhhm 或者是nb.dhhm 还是输入有问题,会跳过其中一个输入 把结构体里面的int换成char才没有问题,为什么int就会有问题 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);
}
} qiuyouzhi 发表于 2021-1-31 16:56
你试试我改过的,没问题
请问大佬你改过了哪些地方,我有一些没有看出来 wdwhszw 发表于 2021-1-31 17:06
请问大佬你改过了哪些地方,我有一些没有看出来
一部分是5楼所说的,然后给你改了下输入的格式
页:
[1]