函数(结构体)

原创 2015年11月18日 21:19:04

//

//  main.m

//  C6_多文件,结构体

//

//  Created by dllo on 15/11/18.

//  Copyright © 2015 dllo. All rights reserved.

//


#import <Foundation/Foundation.h>

#import "MyFunction.h"


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

   

    //定义三个学生变量

//    Student stu1={20,'w',"jj",90};

//    Student stu2={25,'m',"zhangsan",66};

//    Student stu3={22,'m',"fd",78};

   // printStu(stu1);

    

  //  getMaxScore(stu1,stu2,stu3);

    

   ////三个学生,找到最高成绩,并返回

  //  printf("%.1f\n",maxScore(stu1,stu2,stu3));

//    

//   Student maxStu=getMaxScore(stu1,stu2,stu3);

//    printStu(maxStu);

//    

//    getMinAge(stu1,stu2,stu3);

//    

    

    //结构体数组

    Student stu1={20,'w',"zhangsan",60};

    Student stu2={22,'m',"lisi",53};

    Student stu3={16,'m',"wangwu",70.5};

    Student stu4={17,'w',"shenliu",90};

    Student stu5={19,'w',"tianqi",50};

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

    //

//    int childCount = children(allStu,5);

//    printf("%d\n",childCount);

//    

    

    //

//    int passCount=passChildren(allStu, 5);

//    printf("%d\n",passCount);

    

    //

//    Student maxStu=getMaxScore(allStu, 5);

//    printStu(maxStu);

    //

//    sortByScore(allStu,5);

    

//    printf("%ld\n",sizeof(Test));

    

    Room room ={"yamfa4",stu1};

    printf("%s\n",room.stu.stuName);

    

    

    

    

    

    

    

    

    

    

    return 0;

}












///////////////////////////////////////////////////////////////////////

//

//  MyFunction.h

//  C6_多文件,结构体

//

//  Created by dllo on 15/11/18.

//  Copyright © 2015 dllo. All rights reserved.

//


#import <Foundation/Foundation.h>


//结构体的声明

struct student{

    int stuAge;

    char stuSex;

    char stuName[20];

    float score;

};

typedef struct student Student;

void printStu(Student stu);

//打印学生的所有信息

//void printStu(Student stu);

//

////参数是三个学生,把成绩最高的那个学生返回给主函数

//

//Student getMaxScore(Student stu1,Student stu2,Student stu3);

//

////三个学生,找到最高成绩,并返回

//float maxScore(Student stu1,Student stu2,Student stu3);

//

//

////

//Student getMinAge(Student stu1,Student stu2,Student stu3);

//

//

////找到数组里未成年的个数,并且返回

//int children(Student allStu[],int count);

//

//

////及格以上的成绩个数

//int passChildren(Student allStu[],int count);


//找到成绩最高的人,并返回

Student getMaxScore (Student allStu[],int count);


//对五个人依据成绩进行排序

void sortByScore(Student allStu[],int count);


struct test{

    int a;

    int c;

    char b;

   

    char arr[19];

};

typedef struct test Test;


//结构体的嵌套

struct classRoom{

    char roomName[20];

    Student stu;

};

typedef struct classRoom Room;





//////////////////////////////////////

//

//  MyFunction.m

//  C6_多文件,结构体

//

//  Created by dllo on 15/11/18.

//  Copyright © 2015 dllo. All rights reserved.

//


#import "MyFunction.h"


//void printStu(Student stu){

//    

//    printf("姓名:%s, 性别:%c, 年龄:%d, 成绩:%g\n",stu.stuName,stu.stuSex,stu.stuAge,stu.score);

//    //打印中文会影响代码提示

//}


void printStu(Student stu){

    printf("姓名:%s, 性别:%c, 年龄:%d, 成绩:%g\n",stu.stuName,stu.stuSex,stu.stuAge,stu.score);

}


//参数是三个学生,把成绩最高的那个学生返回给主函数

//Student getMaxScore(Student stu1,Student stu2,Student stu3){

//    Student maxScore=stu1.score>stu2.score?stu1:stu2;

//    maxScore.score>stu3.score?maxScore:stu3;

//    printf("%s\n",maxScore.stuName);

//    return maxScore;

//}

//三个学生,找到最高成绩,并返回

//float maxScore(Student stu1,Student stu2,Student stu3){

//    float maxScore=stu1.score>stu2.score?stu1.score:stu2.score;

//    return maxScore>stu3.score?maxScore:stu3.score;

//}


//找到年龄最小的人


//Student getMinAge(Student stu1,Student stu2,Student stu3){

//  

//    Student minAge=stu1.stuAge<stu2.stuAge?stu1:stu2;

//    printf("%s\n",minAge.stuName);

//    return minAge.stuAge<stu3.stuAge?minAge:stu3;

//}


Student getMinAge(Student stu1,Student stu2,Student stu3){

    Student minAge=stu1.stuAge<stu2.stuAge?stu1:stu2;

    printf("%s\n",minAge.stuName);

    return minAge.stuAge<stu3.stuAge?minAge:stu3;

}


//

int children(Student allStu[],int count){

    int num=0;

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

        if (allStu[i].stuAge<18) {

            num++;

        }

    }

    return num;


    

}


//

int passChildren(Student allStu[],int count){

    int num = 0;

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

        if (allStu[i].score>=60) {

            num++;

        }

    }

    return num;

}


//

//Student getMaxScore (Student allStu[],int count){

//    Student maxScore=allStu[0];

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

//        maxScore=maxScore.score>allStu[i].score?maxScore:allStu[i];

//    }

//    printf("%s\n",maxScore.stuName);

//    return maxScore;

//    

//}


Student getMaxScore (Student allStu[],int count){

    

    Student maxStu={};

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

        if (maxStu.score<allStu[i].score) {

            maxStu= allStu[i];

        }

    }

    return maxStu;

}



//

void sortByScore(Student allStu[],int count){

    

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

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

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

                Student temp=allStu[j];

                allStu[j]=allStu[j+1];

                allStu[j+1]=temp;

                

            }

        }

    }

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

        printStu(allStu[i]);

    }

}
























相关文章推荐

结构体变量作为函数的参数和返回值

结构体变量作为函数的参数和返回值 2010-07-28 13:14 准备学习一下OpenCV,可是第一个知识点的语法就没有看懂: typedef struct CvPoint...
  • jinn3
  • jinn3
  • 2012年05月22日 10:58
  • 4865

cdev结构体和相关函数

  • 2015年08月26日 17:57
  • 47KB
  • 下载

【基础练习】结构体定义比较函数双关键字排序

题目好长显得很高大上的样子其实一点也不是这样= = 再次感谢里奥同学的友情支持,没有他我现在还在一片云里雾里。 之前看ruka上一直说:可以自定义排序,但必须自定义小于号或者是比较函数,一直苦于如何实...
  • ametake
  • ametake
  • 2015年02月11日 20:33
  • 1081

send函数可以直接发送结构体吗?

网络通信编程中,常常用结构体对待发送的数据进行封装。比如, struct msg { charcmd;  char len;  int extraData[0]; }; cmd表示命令,远端会根据...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:函数(结构体)
举报原因:
原因补充:

(最多只允许输入30个字)