博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
我的IOS学习历程-第七天
阅读量:5163 次
发布时间:2019-06-13

本文共 5065 字,大约阅读时间需要 16 分钟。

#import <Foundation/Foundation.h>

以下是Function.h(自己添加的)

//  取消结构体自动补齐

//  结构体在内存当中计算占多少字节

//  计算顺序 由上至下依次计算

//  一个成员变量一个成员变量的计算

//  并且自动补齐为 该结构体中所占最大字节数的变量的字节数来进行补齐的

//  : 如果结构体中 最大的是float 就按4的倍数补齐 最大的是double 就按8的倍数补齐

#pragma pack(1)

/*

 声明一个结构体

关键字 struct

struct 结构体名 {

  

  类型名1 变量名1;

  类型名2 变量名2;

  .......

 

 }

 */

//  声明一个描述学生的结构体

//  结构体中声明的变量 一般叫做 成员变量

struct Student {

    char name[20];   //  注意 中间用分号隔离

    char sex;

    double number;

    float score;

    int age;

};typedef struct Student Student;

//  声明结束 也用分号结束

//  声明描述一个点的结构体

//  声明描述一个日期的结构体

struct MyPoint {

    float abs;

    float ord;

};

typedef struct MyPoint MyPoint;

struct Date {

    int year;

    int month;

    int day;

};

typedef struct Date Date;

struct StudentMessage {

    char name[20];

    float score;

    int age;

};

void messageValue(struct Student stu);

void sortMessage(struct StudentMessage stu);

//  需求:描述一个人名字与出生年月日  家庭成员

//  结构体中可以有其他结构体当作成员变量

//  结构体中可以嵌套结构体

struct HomePerson{

    char mother[20];

    char father[20];

    

};typedef struct HomePerson Homeperson;

struct Person{

    char name[20];

    Date day;

    Homeperson home;

};typedef struct Person Person;

//  声明一个函数 冒泡排序

void sortArray(Student stuArray[],int count);

#import "Function.h"

以下为Function.m

void messageValue(struct Student stu){

    printf("%s,%c,%.2f,%.2f,%d\n",stu.name,stu.sex,stu.score,stu.number,stu.age);

}

void SortMessage(struct StudentMessage stu){

    printf("%s %.2f %d",stu.name,stu.score,stu.age);

};

//  按照成绩冒泡排序并输入全部信息

void sortArray(Student stuArray[],int count){

    for (int i = 0; i < count - 1; i++) {

        for (int j = 0; j < count - i - 1; j++) {

            //  注意1:比是数组中 结构体变量的分数

            //  注意2:交换是数组中 结构体变量

            if (stuArray[j].score < stuArray[j + 1].score) {

                Student temp = stuArray[j];

                stuArray[j] = stuArray[j + 1];

                stuArray[j + 1] = temp;

            }

        }

    }

    for (int n = 0; n < count; n++) {

        //  打印的是数组中每一个结构体的变量

        messageValue(stuArray[n]);

    }

    

}

以下是main.h

#import <Foundation/Foundation.h>

#import "Function.h"

//  声明一个匿名结构体 没有名字的结构体

struct {

    char name[20];

    char sex;

    int age;

} stu1 = {

"wanglong", 'm', 18},stu2 = {
"jianglong", 'm', 22};

//  起别名 给类型起别名

//  使用关键字 typedef 老名字 新名字

   typedef int Jay;

//  float 起个别名

//  int array[5]起个别名

  typedef float hh;

  typedef int MyArray[5];//  int array[5] -> MyArray

//  描述一个男的

struct Man {

    char name[20];

    float height;

};

typedef struct Man SuperMan;

//  声明结构体和起别名 连一起写

typedef struct Woman{

    char name[20];

    char sex;

}SuperWoman;

typedef struct StudentMessage StudentMessage;

int main(int argc, const char * argv[]) {

    //  定义一个结构体变量

    //  struct 结构体名 变量名 = {

初值};

    //  初值的顺序需要和 声明时一样

    //  取出结构体中成员变量的值

    //  结构体变量 . 成员变量 =

    

    //  姜龙

//    struct Student stu1 = {"jianglong",'x', 66, 88.8, 22};

//    

//    printf("%d\n",stu1.age);

//    //  修改结构体变量的成员变量的值

//    stu1.age = 32;

//    printf("%d\n",stu1.age);

//    //  修改名字

//    strcpy(stu1.name, "longjiang");

//    printf("%s\n",stu1.name);

//    

    //  编写一个函数 打印结构体的所有信息

    //  变量的数据类型 变量名以前 全是类型

//    struct Student stu2 = {"nipeng", 'x', 14, 88.8, 21};

//    struct Student stu3 = {"jay", 'x', 1, 99.9, 31};

//    messageValue(stu1);

    

//    printf("%ld",sizeof(struct Student));

    

    //  起别名 (外号)

//    MyArray haha = {1, 2, 3, 4, 6};

    

//    SuperMan m2 = {};

    

//    Date date1 = {2015,10,17};

    

//    StudentMessage stu11 = {"jk", 66.6, 20};

//    StudentMessage stu22 = {"hz", 67.6, 22};

//    StudentMessage stu33 = {"ll", 69.6, 25};

    

    

    //有三个学⽣,编程找出分数最⾼者以及年龄最⼩者

    //  先找最高分 三数比大小 再根据这个最高分 找人

//    float maxScore = 0;

//    maxScore = stu11.score > stu22.score ? stu11.score:stu22.score;

//    maxScore = maxScore > stu33.score ? maxScore : stu33.score;

//    //  根据分找人

//    if (maxScore == stu11.score) {

//        sortMessage(stu11);

//    }

//    if (maxScore == stu22.score) {

//        sortMessage(stu22);

//    }

//    if (maxScore == stu33.score) {

//        sortMessage(stu33);

//    }

//    int minAge = 0;

//    minAge = stu11.age < stu22.age ? stu11.age : stu22.age;

//    minAge = minAge < stu33.age ? minAge : stu33.age;

//    if (minAge == stu11.age) {

//        sortMessage(stu11);

//    }

//    if (minAge == stu22.age) {

//        sortMessage(stu22);

//    }

//    if (minAge == stu33.age) {

//        sortMessage(stu33);

//    }

    

    

    //  数据类型 数组名[元素个数] = {

初值};

    //  Student a[4] = {stu1, stu2, stu3, stu4};

    

    

//  结构体变量可以直接赋值 赋值的过程是个拷贝的过程

//  Student stu4 = stu1;

//  数组不能直接进行赋值 数组名字是首元素的地址 是常量 是程序运行期间无法改变的值

    

    //  声明一个Person结构体变量

    //  声明一个Date的结构体变量

//    Date d1 = {1997, 8, 24};

//    Homeperson h1 = {"mama", "die"};

//    Person p1 = {"wanglong", d1, h1};

//    printf("%s\n",p1.home.father);

    

    Student stu1 = {

"wanglong", 'm', 100, 98.8, 18};

    Student stu2 = {

"zhuangzhuang", 'm', 100, 88.8, 18};

    Student stu3 = {

"Jay", 'm', 100, 78.8, 18};

    Student stu4 = {

"Echo", 'm', 100, 68.8, 18};

    Student stu5 = {

"xuyang", 'm', 100, 89.8, 18};

    //  把这五个人放进一个数组中

    Student studentArray[5] = {stu1, stu2, stu3, stu4, stu5};

//    Student tempStu3 = studentArray[2];

//    tempStu3.name;

//    printf("%s",studentArray[2].name);

    //5名学⽣保存在结构体数组中,按成绩从高到低 排序并输出

//    for (int i = 0; i < 4; i++) {

//        for (int j = 0; j < 4 - i; j++) {

//            if (studentArray[j].score < studentArray[j + 1].score) {

//                Student temp = studentArray[j];

//                studentArray[j] = studentArray[j + 1];

//                studentArray[j + 1] = temp;

//                

//            }

//        }

//    }

//    for (int n = 0; n < 5; n++) {

//        messageValue(studentArray[n]);

//    }

    sortArray(studentArray, 5);

    

    

    return 0;

}

转载于:https://www.cnblogs.com/888yf/p/4992742.html

你可能感兴趣的文章
实验二:编写输出"Hello World!"
查看>>
菜单和工具条(二)
查看>>
hadoop17---RPC和Socket的区别
查看>>
[BZOJ 3531] [Sdoi2014] 旅行 【离线+LCT】
查看>>
使用JMeter代理录制app测试脚本
查看>>
MVC 未启用角色管理功能
查看>>
Linq to Object实现分页获取数据
查看>>
mac常用系统命令
查看>>
第42章:MongoDB-集群--Sharding(分片)--单机的搭建
查看>>
2016/11/14
查看>>
异步执行js脚本——防止阻塞
查看>>
利用Excel导出sql语句
查看>>
伪分布模式安装hadoop
查看>>
oracle 051学习笔记
查看>>
Leanote 二进制版详细安装教程 Windows
查看>>
用 ROS 做内网DNS服务器
查看>>
算法 - 求和为n的连续正整数序列(C++)
查看>>
这些哭笑不得的情景,每一个程序猿都可能面对
查看>>
Codeforces 455B A Lot of Games(字典树+博弈)
查看>>
经验19--C#大事
查看>>