• ios结构体


    //
    //  main.m
    //  LessonStruct
    ////  Copyright (c) 2015年 池海涛. All rights reserved.
    //
    
    #import <Foundation/Foundation.h>
    #import "Function.h"
    int main(int argc, const char * argv[]) {
    
        /*
         //结构体申明
         struct 结构体名{
         类型说明符 成员名;
         ...
         类型说明符
         };
         结构体,数组都是构造类型:由基本类型构造而成,数组是由相同的基本数据类型构造出来的数据类型,结构体可以有不同的基本数据类型构造出来,比数组比较灵活
         
         
         结构体内存分破诶原则
         1.按照结构体成员中所占字节数最大的数据类型开配空间,当分配的空间不足时,继续根据最大字节数开辟空间
         2.根据结构体成员中所占字节数第二大的数据类型所占的字节数为依据,进行分配
         3.分配如有剩余,不再占用
         */
        /**
         *  结构体的作用
         1.自定义的数据类型(构造类型),可以用于定义变量.
         2.结构体是个大容器,比数组灵活,可以存储不同类型的数据变量
         */
    
    
        Student stu1 = {"angelbaby",'m',18,59.9};
        Student stu2 = {"bibi",'w',23,33.3};
        Student stu3 = {"nobibi",'w',24,34.4};
        Student stu4 = {"shuine",'2',21,44.4};
        Student stu[5] = {
            {"lichen",'m',20,38},
            {"jianrenzeng", 'm', 56, 19},
            {"wenzhang", 'm', 45, 59.9},
            {"bobo", 'w', 18, 66},
            {"zhenzhen",'w',17,83}};
        输出结构体第一个元素中姓名
        printf("%s",stu[0].name);
        int count = sizeof(stu) / sizeof(Student);
        sortByAge(stu, count);
        sortByName(stu, count);
        printAllStudent(stu, count);
        Woman woman1 = {"kongkong",'w',28,{"xiaowang",'m',2}};
        printf("%s",woman1.sonl.name);
        输出第一个元素所有信息
        printf("%s %c %d %f", stu[0].name, stu[0].gender, stu[0].age, stu[0].score);
        printAllStudent(stu,count);
        
        
        stu1 = stu2;//结构体可以直接拷贝
         int a[10] = {1}; int b[10] = {3};  数组不能直接赋值
        根据次特点,可以在结构体完成数组的整体赋值
        strcpy(stu1.name, "xiaoming");
        printf("%s
    ",stu1.name);
        stu1.age = 20;
        printf("%d
    ",stu1.age);
        定义3个学生结构体变量,获得年龄最大者,并输出
        stu1.age > sut2.age ? stu1.age > stu3.age ? stu1.age :stu3.age :stu2.age;
        
        char maxname[20];
        if (stu1.age > stu2.age) {
            stu4 = stu1;
        
        }
        else
            stu4 = stu2;
        if (stu4.age > stu3.age) {
            printf("%s 
    ", stu4.name);
        }
        else
            stu4 = stu3;
            printf("%s 
    ", stu4.name);
        
        if (stu1.score > stu2.score) {
            stu4 = stu1;
        }
        else{
            stu4 = stu2;
        }
        if (stu4.score > stu3.score) {
            printStudent(stu4);
        }
        else{
            printStudent(stu3);
        }
    
        return 0;
    }

    //---------------

    //
    //  Function.h
    //  LessonStruct
    //
    //  Created by laouhn on 15/7/22.
    //  Copyright (c) 2015年 池海涛. All rights reserved.
    //
    
    #import <Foundation/Foundation.h>
    struct student{
        char name[20];
        char gender;
        int age;
        float score;
    };
    typedef struct student Student;
    
    
    struct teacher{
        char name[20];
        char gender;
        int age;
        float score;
    };
    typedef struct teacher Teacher;
    
    //定义同时重命名
    typedef struct dog{
        char name[20];
        char sex;
    } Person;
    typedef struct miaomiao{
        char name[20];
        char sex;
        int age;
    } Miaomiao;
    typedef struct son{
        char name[20];
        char sex;
        int age;
    } Son;
    typedef struct woman{
        char name[20];
        char sex;
        int age;
        Son sonl;
    } Woman;
    typedef  struct men{
        char name[20];
        char sex;
        int age;
        Woman wife;
    } Men;
    //定义点结构体,横坐标,纵坐标
    struct dot {
        float abscissa;//横坐标
        float ordinate;//纵坐标
    };
    void printStudent(Student);
    void printAllStudent(Student[],int);
    void sortByAge(Student stu[],int count);
    void sortByName(Student stu[],int count);

    //---------

    //
    //  Function.m
    //  LessonStruct
    ////  Copyright (c) 2015年 池海涛. All rights reserved.
    //
    
    #import "Function.h"
    void printStudent(Student stu)
    {
        printf("%s,%c,%d,%.2f
    ", stu.name, stu.gender, stu.age, stu.score);
    }
    void printAllStudent(Student stu[],int n)
    {
        //int count = sizeof(stu) / sizeof(Student);
        for (int i = 0; i < n; i++) {
             printf("%s %c %d %f 
    ", stu[i].name, stu[i].gender, stu[i].age, stu[i].score);
        }
    }
    void sortByAge(Student stu[],int count)
    {
        for (int i = 0; i < count - 1; i++) {
            for (int j = 0; j < count - 1 - i; j++) {
                if (stu[j].age > stu[j + 1].age) {
                    Student temp = stu[j];
                    stu[j] = stu[j + 1];
                    stu[j + 1] = temp;
                }
            }
        }
    }
    void sortByName(Student stu[],int count){
        for (int i = 0; i < count - 1; i++) {
            for (int j = 0; j < count - 1 - i; j++) {
                if (strcmp(stu[j].name,stu[j+1].name) < 0) {
                    Student temp = stu[j];
                    stu[j] = stu[j + 1];
                    stu[j + 1] = temp;
                }
            }
        }
    }
  • 相关阅读:
    过滤数组中的空字符串
    css换行与不换行属性设置
    js 数据的一些操作
    下拉代码后安装依赖,最后出现:Error: Can't find Python executable "python", you can set the PYTHON env variable.
    H5调用原生方法、传值(对象名.方法名的方式)
    移动端1px 展示粗细问题
    echarts 自定义柱状图,模拟3d效果
    react ant table表格切换分页获取全部选中数据
    【思路探究五】:交点坐标 $P(t,-1)$:;:已知抛物线$C:{x^2} = 4y$ 的焦点为$F$ ,点$A$ 在抛物线$C$ 上,且抛物线$C$在点$A$处的切线与抛物线$C$ 的准线交于点$P$ ,则$ riangle AFP$ 面积的最小值为$underline{qquadqquad}.$
    【思路探究四】:斜率直线$AF$的斜率 $k$:;:已知抛物线$C:{x^2} = 4y$ 的焦点为$F$ ,点$A$ 在抛物线$C$ 上,且抛物线$C$在点$A$处的切线与抛物线$C$ 的准线交于点$P$ ,则$ riangle AFP$ 面积的最小值为$underline{qquadqquad}.$
  • 原文地址:https://www.cnblogs.com/wohaoxue/p/4668752.html
Copyright © 2020-2023  润新知