结构体
·有时需要将不同类型的数据组合成一个有机的整体,以便于引用。
#include<stdio.h>
int main()
{
struct student
{
int num;
char *name;
char sex;
float score;
} boy1,boy2;
boy1.num=007;
boy1.name="Jame";
printf("Please input sex and score\n");
scanf("%c %f",&boy1.sex,&boy1.score);
boy2=boy1;
printf("Number =%d\nName= %s\n",boy2.num,boy2.name);
printf("Sex =%c\nScore= %f\n",boy2.sex,boy2.score);
}
#include<stdio.h>
int main()
{
struct student
{
int num;
char *name;
char sex;
float score;
} boy2,boy1={
102,"Jane",'M',98.5};
boy2=boy1;
printf("Number =%d\nName= %s\n",boy2.num,boy2.name);
printf("Sex =%c\nScore= %f\n",boy2.sex,boy2.score);
}
①结构体数组
A.通讯录
#include<stdio.h>
#include<stdlib.h> struct student
struct person
{
char name[20];
char phone[10];
};
int main()
{
struct person n[3];
int i;
for(i=0;i<3;i++)
{
printf("input name:\n");
scanf("%s",&n[i].name);
printf("input phone:\n");
scanf("%s",&n[i].phone);
}
printf("\tname\t\t\t\t\tphone\n\n");
for(i=0;i<4;i++)
{
printf("%15s\t\t\t%15s\n",n[i].name,n[i].phone);
}
}
B.投票系统
例题:对候选人得票的统计程序。设有3个候选人,每次输入一个的票的候选人的名字,要求最后输出各人得票的结果。
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
struct person
{
char name[20];
int count;
}Nlender[3]={
"laogou",0,"xiaogou",0,"wunmingshi",0};
int main()
{
char Wname[20];
int i,j;
for(i=0;i<10;i++)
{
printf("请输入你要投票的人名:\n");
scanf("%s",&Wname);
for(j=0;j<3;j++)
{
if(strcmp(Wname,Nlender[j].name)==0)
{
Nlender[j].count++;
}
}
}
printf("\n\n\n");
for(i=0;i<3;i++)
{
printf("%s 的投票数为: %d\n",Nlender[i].name,Nlender[i].count);
}
}
②指向结构体类型数据的指针
结构名和结构变量是两个不同的概念,结构名只能表示一个结构形式,编译系统并不对他分配内存空间。
#include<stdio.h>