注意: 第1l章结构体与共用体 1、由于结构体是由不同类型成员组成的,所以在 用 scanf函数输入不同类型数据时有时会出现预料 不到的事情。例如: maino istruct 输入125ab Rint 运行结果? char ch1 char ch2: i=125 chl= ch2=a scanf(“%d%c%c”’,&t.i,& ett. chI,&t.ch2); printf(i=%d, chl=%c, ch2=%c, tt. i, tt chl, tt ch2); 16
第11章 结构体与共用体 16 注意: 1、由于结构体是由不同类型成员组成的,所以在 用scanf函数输入不同类型数据时有时会出现预料 不到的事情。例如: main() {struct {int i; char ch1; char ch2; }tt; scanf(“%d%c%c”,&tt.i,&tt.ch1,&tt.ch2); printf(“i=%d,ch1=%c,ch2=%c”,tt.i,tt.ch1,tt.ch2);} 输入125 a b 运行结果? i=125,ch1= ,ch2=a
第1l章结构体与共用体 2、尽量避免用一个scan数输入包含字符数据在 内的一组不同类型的数据,以免出错。处理办法: 各种数据都用gets函数输入,然后再用转换函数 进行转换: atoi0将字符串转换成整型 atof(将字符串转换成 double型实数 ato0将字符串转换成长整型 这三个函数要用# nclude命令将“ stdlib.h”文件 包含进来。 17
第11章 结构体与共用体 17 2、尽量避免用一个scanf函数输入包含字符数据在 内的一组不同类型的数据,以免出错。处理办法: 各种数据都用gets函数输入,然后再用转换函数 进行转换: – atoi() 将字符串转换成整型 – atof() 将字符串转换成double型实数 – atol() 将字符串转换成长整型 这三个函数要用#include命令将“stdlib.h”文件 包含进来
输入示例 第1章结构体与共用体 #include stdlib. h' #include stdio. h' maino Rint i; char ch, chl, ch2; char numstr/10/; gets(numstr); 程序运行结果如下: i=atoi(numstr) 128 chI=getchar ch=getchar b ch2=getchar(; =128 ch1=a ch2=b printf("i%d, ch1=%c, ch2=%cn",i,chl, ch2) 18
第11章 结构体与共用体 18 输入示例: #include "stdlib.h" #include "stdio.h" main() {int i; char ch,ch1,ch2; char numstr[10]; gets(numstr); i=atoi(numstr); ch1=getchar(); ch=getchar(); ch2=getchar(); printf("i=%d,ch1=%c,ch2=%c\n",i,ch1,ch2);} 程序运行结果如下: 128 a b i=128,ch1=a,ch2=b
第1章结构体与共用体 第四节结构体数组 结构体数组的定义 结构体数组的初始化 结构体数组的引用 19
第11章 结构体与共用体 19 第四节 结构体数组 结构体数组的定义 结构体数组的初始化 结构体数组的引用
笔11章结构体与共用体 定义 方法一 先定义结构体类型,再定义结构体数组。 struct student dlong num char name 20; int age; float score;s5 struct student stud 3:
第11章 结构体与共用体 20 先定义结构体类型,再定义结构体数组。 struct student {long num; char name[20]; int age; float score; }; struct student stud[3]; 定义: 方法一