当前位置:首页 » 编程语言 » c语言嵌套结构体输入程序怎么写
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言嵌套结构体输入程序怎么写

发布时间: 2022-05-19 15:12:16

A. c语言结构体嵌套

定义一个学期结构体,学期结构体中的4个元素类型为成绩结构体,再将这个学期结构体放到student中

B. C语言结构体的问题,一个嵌套,可是我写的好像有问题,初学求帮助解答,谢谢

你要用结构的要先定义一个结构的变量。
book结构里面的 struct author author; 这个结构变量定义变量名不要和结构类型名字一样。
struct book a; //book是类型名字。后面的a才是变量名。
scanf的输入格式控制符。%c是一个字符。如果是字符串的话是%s。
还有printf后面的参数表不要加地址符&;
还有那个循环是无意义的。。。输入两次。第二次覆盖第一次。
#include <stdio.h>
struct author
{
char FirstName[20];
char LastName[20];
char sex[10];
};
struct book
{
char title[20];
float value;
struct author bk;
};
int main()
{
int i;
struct book p;
printf("输入这本书的标题:\n");
scanf("%s",&p.title);
printf("输入这本书的价钱:\n");
scanf("%f",&p.value);
printf("输入这本书的作者姓和名:\n");
scanf("%s%s",&p.bk.FirstName,&p.bk.LastName);
printf("输入作者的性别:\n");
scanf("%s",&p.bk.sex);
printf("标题:%s\n",p.title);
printf("价格:%f\n",p.value);
printf("作者的姓和名:%s%s\n",p.bk.FirstName,p.bk.LastName);
printf("作者的性别:%s\n",p.bk.sex);
return 0;
}

C. C语言结构体嵌套问题

更正如下:注意语法
#include<stdio.h>
struct
Date
{
int
month;
int
day;
int
year;
};
struct
Person
{
char
name[20];
char
sex;
struct
Date
birthday;
unsigned
num;
};
int
main(void)
{
struct
Person
p1={"WangLi",'M',12,15,1974,111000222};
struct
Person
p2;
p2=p1;
printf("zhang:%s,%c,%d-%d-%d,%lu\n",p1.name,p1.sex,p1.birthday.month,p1.birthday.day,p1.birthday.year,p1.num);
return
0;
}

D. C语言 如何在结构体中给嵌套的结构体赋值

结构体嵌套,赋初值,大括号嵌套就可以了。
问题是你代码写错了。
你定义的old1不是结构类型,而是结构变量。
在shuju中成员要写struct old 变量名;
不能写struct old1。
下面是演示代码:(补充:如果想定义一个结构类型别名,要用typedef

#include <stdio.h>

struct old

{

int year;

int month;

int day;

}old1={1972, 8, 3};

struct shuju

{

char name[10];

char gender[6];

int height;

struct old old1;

char access[9];

}shuju1={"moumouren","male",175,{2019,6,29},"well"};

int main()

{

printf("结构变量old1的初值: %d %d %d ",old1.year,old1.month,old1.day);

printf("结构变量shuju1中成员old1的初值:%d %d %d ",shuju1.old1.year,shuju1.old1.month,shuju1.old1.day);

printf("我特意起一样的名字,就是告诉你这两个变量是不一样的。 ");

return 0;

}

/*(补充:如果想定义一个结构类型别名,要用

typedef struct old

{

int year;

int month;

int day;

}old1;//这样old1才表示是一个类型,然后再定义该类型变量时,才可以写 old1 变量名;

)*/

E. 【c语言共用体】里面嵌套有结构体,求详解。高分悬赏。谢谢

共用体就是享用同一块内存
在此例中
e的大小为最长元素的大小,也就是结构体out的大小,共两个int,假设此处int为4字节
e.c和e.d和e.out.a占用同一块内存,即低4字节的内存,a.out.b占用高4字节内存
然后e.c=1;e.d=2;
e.c和e.d和e.out.a都为2
e.out.a=e.c*e.d = 2*2 = 4;
那么e.c和e.d和e.out.a都变成了4
e.out.b=e.c+e.d = 4+4 = 8

F. 如何在C语言中嵌套定义结构体并VC6.0编译通过

struct structA;
struct structB;
typedef struct structA{
int a;
structB *pb;
}structA;
typedef struct structB{
int b;
structA *pa;
}structB;
先声明再定义,其实这个和函数声明和定义是一样的,咱们可以再main函数前面声明,但是定义可以放在main函数后面,是同一个道理。楼主学过编译原理吗?只要声明了,就有分配空间,虽然具体空间大小在定义处才知道,但是声明了,就会知道有这么个东西,会预留空间。所以只要声明就可以了

G. 关于c语言结构体嵌套的问题

早期纯C编译器要求结构体类型必须写上struct关键字,不能只写个结构体名。后来C++兼容的编译器则允许写结构体名就可以了。所以你在嵌套时结构体成员名前写上struct(struct Order order;)就在什么编译器下都能通过了……

H. c语言嵌套结构体代码求解

0开头的,说明是八进制数,八进制数里没有9,直接写成9就好了,不要写09,要不然就写成0x09

I. c语言中如何用子函数调用结构体中的变量实现数据的输入与输出。

用子函数实现结构体数据的输入与输出:对于多数子函数的输入与输出,有一定规律性可言。
方法1:void型不传值传址调用与声明。main中声明void date_in(),void date_pout()。函数定义前一定在main()前先定义结构体变量(全局变量),然后定义输入或输出程序段。此时再main()调用即可。
如下:
struct student
{
char name[20];
int old;
char sex;
}stu;
void date_in();
void main()
{ date_in();
}
void date_in()
{ scanf("%s%d/c,"stu.name,stu.old,stu.sex);
}时间问题程序有点简洁,有问题请追问,很乐意与你分享。