#include<stdio.h> struct st { int x; int y; } a[2]={5, 7, 2, 9} ; main() { printf("%d\n",a[0].y*a [1].x); }
运行结果是:
350
14
35
解析:首先是定义结构体st,st中共有两个整型成员x,y。然后定义一个st类型的数组a,a的长度为2,即数组中含有两个st类型的元素,分别是a[0]和a[1]。对a进行初始化,此题是按照存储顺序进行初始化,即将5赋给a[0]中的x(即a[0].x=5),将7赋给a[0]中的y(即a[0].y=7),将2赋给a[1]中的x(即a[1].x=2),将9赋给a[1]中的y(即a[1].y=9)。执行main函数,输出表达式a[0].y*a[1].x的值,即7*2的值14。
14 #include <stdio.h>
// 定义一个结构体 st struct st { int x; int y; } a[2] = { {5, 7}, {2, 9} }; // 正确初始化结构体数组
// 主函数 int main() { // 计算并打印 a[0].y 和 a[1].x 的乘积 printf("%d\n", a[0].y * a[1].x); return 0; // 返回0表示程序正常结束 }
在struc st中,先int x(0),后int y(1)
a【2】=4个元素,范围超了,换成二维数组
a[0].y=a[0][1]=7;
a[1].x=a[1][0]=2.
a[0].y*a [1].x=14
a[0].y=7
a[0].x=5
a[1].x=2
a[1].y=9
7*2=14
5, 7 初始化a[0]的x,y 2,9 初始化a[1]的x,y 所以结果是7* 2=14
定义结构体并初始化
用户登录可进行刷题及查看答案
登录后提交答案