提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
题目:
[实验案例1:结构体变量]
定义结构体类型点,线段。定义线段结构体变量并初始化,输出线段名称,起始点坐标。对线段名称和起点坐标进行格式化输入赋值。最后计算线段长度并输出。
[实验指导]
分析下述程序,掌握结构体与结构体变量的定义以及对结构体变量成员的访问。
代码:
/*结构体与结构体变量的定义以及对结构体变量成员的访问,文件名sy9_1.c */
#include <stdio.h>
#include <math.h>
struct point /* 点的结构类型 */
{
int x;
int y; /* x,y是点的坐标 */
};
struct segment /* 线段的嵌套结构类型 */
{
char name[6]; /* 线段名称 */
struct point start; /* 线段的起点 */
struct point end; /* 线段的终点 */
};
int main( )
{
struct segment a={"abc",{1,1},{10,10}}; /*声明嵌套结构变量时对其初始化 */
double dx2,dy2,length;
printf("线段名称 %s\n",a.name); /*输出线段名称 */
printf("起点坐标:(%d,%d)\n",a.start.x,a.start.y); /*下面输出起点坐标和终点坐标*/
printf("终点坐标:(%d,%d)\n",a.end.x,a.end.y);
printf("请输入修改后的线段名称:") ;
scanf("%s",a.name);
printf("请输入修改后的起点坐标:"); /*对线段名称和起点坐标进行格式化输入赋值 */
scanf("%d%d",&a.start.x,&a.start.y);
printf("请输入修改后的终点坐标:");
scanf("%d%d",&a.end.x,&a.end.y); /*对终点坐标进行赋值 */
dx2=(a.end.x-a.start.x)*(a.end.x-a.start.x); /*计算线段长度并输出 */
dy2=(a.end.y-a.start.y)*(a.end.y-a.start.y);
length=sqrt(dx2+dy2);
printf("线段长度为 %.2f\n",length);
return 0;
}
结果:
总结
提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了结构体与结构体变量的定义以及对结构体变量成员的访问。