标签:
// main.m
#import <Foundation/Foundation.h>
//struct{
// char name[20];
// int age;
//
//}stu={"葫芦娃",18};
//
int main(int argc, const char * argv[]) {
/***
结构体的 成员变量可以是不同的数据类型,例如(int char,,,
)
数组是由相同类型的元素构成的
结构体
命名: 标示符 (struct)结构体名{
//成员变量
类型说明符 变量名;( 变量名 变量名的命名规范)
.....
};
***/
//定义一个存储点信息的结构体
// typedef struct mypoint
// {
// int x;
// int y;
//
// }point;
// point a={1,2};
// //定义一个存储矩形信息的结构体
// struct juxing{
//
// int chang;
// int kuan;
//
// };
// //定义存储人特征的结构体
// struct persen{
//
//
// char name[20];
// int age;
// int bobby[20];
// int sex;
//
// };
// //定义一个汽车结构体
// //定义一个汽车人的结构体
// typedef struct car
// {
//
// int lunzi;
// char color[20];
// char pinpai[20];
// int pailiang;
//
// }ca;
// ca che={4,"黄色","但凡",2};
// printf("该车轮子%d个,颜色:%s,品牌:%s,排量%d\n",che.lunzi,che.color,che.pinpai,che.pailiang);
//
// //定义一个女朋友
// struct Girlf
// {
// char name[20];
// int age;
// float height;
// float weight;
// char sex;
//
//
// };
// //结构体变量是由结构体类型修饰的变量叫做结构体变量
// //格式:
// // struct 结构体名 变量名={ 初值 };
// //1.他可以直接给我们结构体内的成员变量进行赋值,注意,赋值是和我们结构体内部成员变量是一一对应的;
// struct Girlf gf={"赛貂蝉",30,1.20,250.00,‘m‘};
// printf("我的女朋友叫:%s,今年:%d岁,身高:%.2f米,体重:%.2f,最可怕的他还是个%c的",gf.name,gf.age,gf.height,gf.weight,gf.sex);
// //这里的点语法和我们oc中学习的语法很相似,都是通过我们的对像(也就是变量名)对其内部的属性进行一一对应的,
// //赋值
// // gf.name="小白",//字符串不可以直接赋值,想要进行赋值,我们需要使用 strcpy()
//
// strcpy(gf.name, "二狗蛋");
//
// printf("我的女朋友叫:%s,今年:%d岁,身高:%.2f米,体重:%.2f,最可怕的他还是个%c的",gf.name,gf.age,gf.height,gf.weight,gf.sex);
//
//
// typedef struct teacher {
//
// char name[20];
// int age;
// int gonghao;
//
// }tea;
// tea mathteacher={"龚杰",30,16010157};
// printf("我是数学老师是:%s ,年龄%d ,工号:%d ",mathteacher.name,mathteacher.age,mathteacher.gonghao);
//
//
// struct dog{
//
// char name[20];
// char color[20];
//
// };
// struct dog g={"放的","黄色"};
// printf("我的狗狗:%s,颜色:%s",g.name,g.color);
//
//匿名结构体
// struct{
// char name[20];
// int age;
//
// }stu={"葫芦娃",18};
// stu.age=20;
// printf("%d",stu.age);
//
// stu.age=20;
//
//结构体内部计算
// struct student{
//
// int age;
// char sex;
// double height;
// int weight;
//
// }stu;
// printf("%lu",sizeof(stu));
// struct student{
//
// int a;
// char d[20];
// double b;
// float c;
//
// }stu;
// printf("%lu",sizeof(stu));
//Typedef
//为我们现有的结构体 另起一个新的名字,用新起得名字 代替我们能原有的结构体
//语法:typedef 原类型名 新类型名
//下方的typedef int ZX代表的是 给我们int 类型起了一个新的名字 叫 ZX ZX代表的是 int
//结构体可以直接赋值,但是数组不可以直接赋值,要是想直接进行赋值,我们可以把数组放在结构体当中进行直接赋值
// typedef int ZX;
// typedef float fd;
//
// ZX num=9;
// ZX num1=12;
// fd num2=12.3;
//
// struct student{
//
// char name[20];
//
// };
// struct student stu1={"二傻子"};
//
// //使用 typedef
// typedef struct Student student;
// student stu2={"二愣子"};
//
// typedef struct personer
// {
//
// char name[20];
// int age;
//
// }person;
//
// person p1={"小丽",22};
//
//有三个学生,编程找出分数最高以及年龄最小者
// typedef struct student{
// int num;
// char name[20];
// int age;
//
// }stu;
// stu s1={89,"小红",18};
// stu s2={90,"小绿",20};
// stu s3={78,"小黄",15};
// //定义接收分数最高
// stu s4={0};
// stu temp1;
// stu temp;
// //定义接收年龄最小的
// stu s5={0};
// s4=s1.num>s2.num?s1:s2;
// s4=s4.num>s3.num?s4:s3;
// printf("分数最高的:%d,%s,%d\n",s4.num,s4.name,s4.age);
// s5=s1.age<s2.age?s1:s2;
// s5=s5.age<s3.age?s5:s3;
// printf("年龄最小:%d,%s,%d\n",s5.num,s5.name,s5.age);
//
// //成绩降序
// stu s6[]={89,"小红",18,90,"小绿",20,78,"小黄",15};
// for (int i=0; i<2;i++ ) {
// for (int j=0; j<2-i; j++) {
// if (s6[j].num<s6[j+1].num) {
// temp=s6[j];
// s6[j]=s6[j+1];
// s6[j+1]=temp;
// }
// }
// }for (int i=0; i<3; i++) {
// printf("%d,%s,%d\n",s6[i].num,s6[i].name,s6[i].age);
// }
// printf("\n");
// //年龄升序
//
// stu s7[]={89,"小红",18,90,"小绿",20,78,"小黄",15};
// for (int i=0; i<2;i++ ) {
// for (int j=0; j<2-i; j++) {
// if (s7[j].age>s7[j+1].age) {
// temp1=s7[j];
// s7[j]=s7[j+1];
// s7[j+1]=temp1;
// }
// }
// }for (int i=0; i<3; i++) {
// printf("%d,%s,%d\n",s7[i].num,s7[i].name,s7[i].age);
// }
// printf("\n");
//编程找出下列四人中成绩最高者,并按照姓名进行冒泡排序(升序)并打印出全部信息
// typedef struct person{
//
// char name[20];
// int num;
// char hoobby[20];
// int age;
// }per;
// per per1={"zrt",60,"ritian",18};
// per per2={"ylc",70,"nvren",20};
// per per3={"hlw",80,"yeye",7};
// per per4={"fj",30,"sg",24};
//
// per per5={0};
// per per6[]={per1,per2,per3,per4};
// per temp;
// per5=per1.num>per2.num?per1:per2;
// per5=per5.num>per3.num?per5:per3;
// per5=per5.num>per4.num?per5:per4;
//
//
// printf("成绩最高的%s,%d,%s,%d\n",per5.name,per5.num,per5.hoobby,per5.age);
//
// //strcmp(<#const char *#>, <#const char *#>)
// for (int i=0; i<3; i++) {
// for (int j=0; j<3-i; j++) {
// if (strcmp(per6[j].name, per6[j+1].name)>0) {
// temp=per6[j];
// per6[j]=per6[j+1];
// per6[j+1]=temp;
// }
// }
// }for (int i=0; i<4; i++) {
// printf("按照姓名排序:姓名%s,成绩%d,爱好%s,年龄%d\n",per6[i].name,per6[i].num,per6[i].hoobby,per6[i].age);
// }
//结构体嵌套 结构体的成员为结构体
// typedef struct Date{
//
// int year;
// int month;
// int day;
//
// }MyDate;
// typedef struct person
// {
// char name[20];
// int age;
// MyDate birthday;
//
// }per;
// per per1={"丑葫芦",18,{1997,12,20}};
// printf("姓名%s,今年%d,出生日期%d年%d月%d日",per1.name,per1.age,per1.birthday.year,per1.birthday.month,per1.birthday.day);
//
typedef struct person{
char name [20];
int age;
int num;
char b[20]
}per;
per p1={"小丽",18,34,"吃饭"};
per p2={"??黄",19,56,"睡觉"};
per p3={"小白",3,78,"干"};
per p4[3]={p1,p2,p3};
//通过对应的下标找到对应的结构体然后我们使用点(.)语法点出我们想要的属性(实例变量)
printf("今年%d岁\n",p4[0].num);
printf("我是最吊的,我叫%s\n",p4[2].name);
return 0;
}
标签:
原文地址:http://www.cnblogs.com/huyibo/p/5475224.html