iOS培训-c语言基础学习

来源:互联网 发布:数据之巅涂子沛txt下载 编辑:程序博客网 时间:2024/05/17 06:17

由于iOS的火热,学校也在我们即将找工作之前为我们开设了各种实习培训,我一直都喜欢iOS开发,开发的效率特别高(之前开发一个小的iOS应用),感觉特别好用。遗憾的是这次培训的内容是一些基础的东西,不过从睿峰公司过来的老师确实可以,他们好敬业,而且很有耐心,于是就跟着重新学习了一下,也省去了我重新整理iOS方面的知识,省的下次重新接触iOS的时候没有那么陌生(我已经在学校的实验室学习android的将近2年了,所以即将毕业的我会选择android方面的工作),以后有机会再去深究它吧,不过先mark一下,供以后使用。

第一天讲的东西不是很多,主要讲的是一些c语言方面的东西


Funcitons.h文件内容如下:

#ifndef __HelloWorld__Funcitons__#define __HelloWorld__Funcitons__#include <stdio.h>//声明一个加法函数int add(int number1,int number2);#endif
Funcitons.c文件内容如下:

#include "Funcitons.h"int add(int number1,int number2){        return number1 + number2;}
main.c文件内容如下:

//以下两行中<>表示系统会先从系统自身查找stdio.h文件,如果找不到,再到自己写的地方找;//""与<>类似,先到自己写的找Funcitons.h文件,找不到再到系统中找#include <stdio.h>//预编译的时候将stdio.h文件里的全部内容拷贝到此处#include "Funcitons.h"//预编译的时候将Funcitons.h文件里的全部内容拷贝到此处/* 宏定义 */#define PI 3.14//方法的声明void printStudent();//方法的定义void printStudent() {    printf("你好,重庆");}int main(int argc, const char * argv[]) {    //===========基本数据类型:int float double char    //===========基本运算符:加减乘除取余    //===========流程控制:顺序选择,选择,循环(排序)    //===========一维数组    //===========二维数组    //===========指针    int _score=10;    int *p=&_score;    printf("\nsocre=%d\n\n",*p);    //=================================结构体(Student)    struct Student{        int sid;//学号        char *name;//姓名        int score;//成绩    };    printStudent();//内部方法调用    int sum = add(1, 2);//外部方法调用    printf("\n\nsum=%d",sum);        return 0;}

1. main.c文件上边#include两行指的是引入头文件的原理,但是为了避免重复引用,使用了#ifndef和#endif搭配使用,Funcitons.c文件就使用了此方法避免重复引用;如果#include Funcitons.h 的时候已经定义__HelloWorld__Funcitons__了,里边的内容将不被拷贝到此处,也就避免内容重复引入此文件中。

2. 结构体的讲解由一个demo很好地诠释了它的使用大笑


学生成绩显示demo:该应用使用Student结构体,利用算法按总成绩排序展示学生成绩(如果了解结构体,下文可以不用看,但是按总成绩排序显示的算法可以看一哈)

Functions.h文件内容如下:

#ifndef __StudentManageSystem__Functions__#define __StudentManageSystem__Functions__#include <stdio.h>//方法声明double average(double number1,double number2,double number3);//平均成绩double add(double number1,double number2,double number3);//累加int * returnIndexs(double sourceArray[],int len);//根据数组值大小排序#endif
Functions.c文件内容如下:

#include "Functions.h"//方法定义double average(double number1,double number2,double number3){    return  (number1+number2+number3)/3;}//方法定义double add(double number1,double number2,double number3){    return  number1+number2+number3;}//方法定义//按总成绩数组排序,用一个数组记住排序,该sourceArray数组结构改变,要备份一下int * returnIndexs(double sourceArray[],int len){    int index[len];    for (int i=0; i<len; i++) {        index[i] = i;    }    for (int j=0;j <len;j++) {        for (int i=len-2;i >= j;i--)            if (sourceArray[i] > sourceArray[i+1])            {                double t=sourceArray[i];                sourceArray[i]=sourceArray[i+1];                sourceArray[i+1]=t;                                int tt = index[i];                index[i] = index[i+1];                index[i+1] = tt;            }    }    return index;}

main.c文件内容如下:

#include <stdio.h>#include "Functions.h"#define SIZE 5int main(int argc, const char * argv[]) {        struct Student{        int sid;        double score_Chinese;        double score_English;        double score_Math;    };        struct Student students[5];    //第一个学生    students[0].sid = 1001;    students[0].score_Chinese = 60;    students[0].score_English = 60;    students[0].score_Math = 60;    //第二个学生    students[1].sid = 1002;    students[1].score_Chinese = 70;    students[1].score_English = 70;    students[1].score_Math = 70;    //第三个学生    students[2].sid = 1003;    students[2].score_Chinese = 90;    students[2].score_English = 90;    students[2].score_Math = 90;    //第四个学生    students[3].sid = 1004;    students[3].score_Chinese = 80;    students[3].score_English = 80;    students[3].score_Math = 80;    //第五个学生    students[4].sid = 1005;    students[4].score_Chinese = 100;    students[4].score_English = 100;    students[4].score_Math = 100;        double sums[SIZE];    double sums_backup[SIZE];    double averages[SIZE];    for (int i=0;i<SIZE;i++) {        sums[i] = add(students[i].score_Chinese,students[i].score_English ,students[i].score_Math);        sums_backup[i] = sums[i];        averages[i] = average(students[i].score_Chinese,students[i].score_English ,students[i].score_Math);    }        int *index0 = returnIndexs(sums, SIZE);    int index[SIZE];    for (int i=0; i<SIZE; i++) {        index[i] = index0[i];    }    for (int i=0; i<SIZE; i++) {        printf("\n");        printf("学号:%d\n",students[index[i]].sid);        printf("语文成绩:%f\n",students[index[i]].score_Chinese);        printf("英语成绩:%f\n",students[index[i]].score_English);        printf("数学成绩:%f\n",students[index[i]].score_Math);        printf("总成绩:%f\n",sums_backup[index[i]]);        printf("平均成绩:%f\n",averages[index[i]]);    }        return 0;}

运行结果如下:




















0 0
原创粉丝点击