2015-11-17-main函数-.m文件-.h文件- 声明- 定义-调用

.h文件/// 1.
void max20();
int returnMax20();
/// 3.
void inputNum1();
void inputNum2(int a);

.m文件
void max20() {
int max = 0;
for (int i = 0; i < 20; i++) {
int a = arc4random() % (100 - 10 + 1) + 10;
if (max < a) {
max = a;
}
}
printf("max = %d\n", max);
}

int returnMax20() {
int max = 0;
for (int i = 0; i < 20; i++) {
int a = arc4random() % (100 - 10 + 1) + 10;
if (max < a) {
max = a;
}
}
return max;
}

void inputNum1() {
int a = 0;
scanf("%d", &a);
if (a > 0) {
printf("正数\n");
} else if (a < 0) {
printf("负数\n");
} else {
printf("0\n");
}
}

void inputNum2(int a) {
if (a > 0) {
printf("正数\n");
} else if (a < 0) {
printf("负数\n");
} else {
printf("0\n");
}
}

main函数
// 1.用函数实现 : 随机产生20个[10 , 100]的正整数,输出这些数以及他们中的最大数
max20();
int a = returnMax20();
printf("max = %d\n", a);
// 4.用函数实现:输入一个数,判断符号.如果大于0,输出“正数”;如果小于0,输出“负数”;如果等于0,输出“0”
inputNum1();
int b = 0;
scanf("%d", &b);
inputNum2(b);

C_5函数 函数 的四大结构

//
// main.m
// C_5函数
//
// Created by YIem on 15/11/16.
// Copyright (c) 2015年 www.yiem.net YIem博客. All rights reserved.
//

#import <Foundation/Foundation.h>

// 函数 的四大结构
/// 1.无返回无参数
void noReturnNoArgus(void) {
printf("无返回无参数\n");
return;// 表示 函数的结束/停止 return 下方的代码永远不会被执行
}
/// 2.无返回 有参数
void noReturnHasArgus(int a, float b, char c) {
printf("无返回有参数:%d, %f %c\n",a, b, c);
}
/// 3.有返回无参数
int hasReturnNoArgus(){
printf("有返回无参数\n");
return 100;
}
/// 4.有返回有参数
int hasReturnHasArgus(int a){
printf("有返回有参数\n");
return a;
}
// 函数的三要素: 定义 调用 声明

// 函数声明
// 格式: 返回值 函数名(参数)
void test();

// 函数声明
int sumN(int n);
// 函数定义
int sumN(int n){
// 算法
//

return n;// return (1 + n) * n / 2;

}

int main(int argc, const char * argv[]) {
// argc -> 个数 argv -> 数组

// Function 函数

// 具有某种功能的代码段
// 完成某件事的一个人

// 函数的格式构成
// 函数返回值 函数名 (参数列表) { 函数体}
// 返回值: 只有void 无符号值 其他所有类型都是有返回
// 有返回值的函数 结尾处必须有return 无返回值的函数 可有可无
// 参数列表: 有参数/无参数  无参数时 只写一个void 或者什么都不写 有参数时 写(参数类型 参数名) 多个参数之间 逗号分隔
// 函数体: 要执行的代码

#if 0

/// 函数的调用
// 返回值 = 函数名(参数);
// 1.无返回无参数
noReturnNoArgus();
// 2.无返回有参数
// 也可以通过int a = 100;
noReturnHasArgus(100, 3.14, '+');
// 3.有返回无参数
int b = hasReturnNoArgus();
printf("%d %d\n", b,hasReturnNoArgus());// 可以直接调用hasReturnNoArgus
// 4.有返回有参数
int c = hasReturnHasArgus(100);
printf("%d",hasReturnHasArgus(c));
#endif

// 如 < # 输入内容 # >

/// bb

/// <#nihao#>

// 限时代码 2:30
#if 0
int a[5] = {7, 2, 4, 5, 6};
for (int i = 0; i < 5; i++) {
for (int j = 0; j <5 - 1; j++) {
if (a[j] > a[j + 1]) {
int temp = a[j];
a[j] = a[j +1];
a[j + 1] = temp;
}
}
}

for (int i = 0; i < 5; i++) {
    printf("%d",a[i]);
}

#endif

//调用测试
test();

// 练习 计算1-n的值

int n = 0;
scanf("%d", &n);
printf("shi %d\n", n = (1 + n) * n / 2);
int result = sumN(n);
printf("%d\n", result);

// 书写过程: 声明->定义->调用
// 执行过程: main函数->自定义函数->回到main函数


return 0;

}

void test(){
printf("suibian\n");
}

C5_函数2 函数参数: 形(形式)参 / 实(实际)参

//
// main.m
// C5_函数2
//
// Created by YIem on 15/11/16.
// Copyright (c) 2015年 www.yiem.net YIem博客. All rights reserved.
//

#import <Foundation/Foundation.h>

/// 求和
int sum(int a, int b);// 声明
int sum(int a, int b){//定义

return a + b;

}
int sub(int a, int b);
int sub(int a, int b) {
return a - b;
}
int ji(int a, int b);
int ji(int a, int b) {
return a * b;
}
int chu(int a, int b);
int chu(int a, int b) {
return a / b;
}
double yu(int a, int b);
double yu(int a, int b) {
return a % b;
}
/// 交换
void exchange(int a, int b);
void exchange(int a, int b) {
int temp = a;
a = b;
b = temp;
}

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

// 练习1.两个数求和
int he = sum(3, 5);

printf("%d\n", he);
//也可以直接打印(下面)
//printf("%d\n", sum(3, 5));

// 练习2.两个数求差
printf("%d\n", sub(5, 3));
// 练习3.两个数求积
printf("%d\n", ji(4, 6));
// 练习4.两个数求除

printf("%d\n", chu(9, 3));
// 练习4.两个数求余

printf("%.2f\n", yu(6, 4));

// 练习:交换两个数的函数
int a = 3, b = 5;
exchange(a, b);
printf("%d %d\n", a, b);


// 函数参数:

// 形参: 函数声明/定义处的为 形参 形参有类型
// 实参: 函数调用处的为 实参 没有类型 只有具体的 变量/值
// 实参由函数调用处 向函数定义中传递时 是复制过程




return 0;

}

C5_函数3.1 定义 声明

//
// main.m
// C5_函数3.1
//
// Created by YIem on 15/11/16.
// Copyright (c) 2015年 www.yiem.net YIem博客. All rights reserved.
//
// main 函数中写函数调用
#import <Foundation/Foundation.h>
#include "MyFunc.h"

// 递归函数 函数定义中调用当前函数
void diGui(){
diGui();
printf("随便\n");
}
// 递归 阶乘 5 * 4 * 3 * 2 * 1
int jieCheng(int n) {
if (1 == n) {
return 1;
}
return n * jieCheng(n - 1);
}

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

// main 函数中写函数调用
printf("%d\n", maxTwo(3, 4));
// 函数嵌套调用
printf("%d\n", maxTwo(maxTwo(3, 4), 5));
// 函数中 只能调用函数 不能定义函数
// 定义只能写在main函数的外面
printf("%d\n", maxThree(3, 4, 5));
printf("%d\n", maxTwo(maxThree(3, 4, 5), 6));




//diGui();


return 0;

}

- 阅读剩余部分 -

2015-11-16- C_5函数

//
// main.m
// C_5函数
//
// Created by YIem on 15/11/16.
// Copyright (c) 2015年 www.yiem.net YIem博客. All rights reserved.
//

#import <Foundation/Foundation.h>

// 函数 的四大结构
/// 1.无返回无参数
void noReturnNoArgus(void) {
printf("无返回无参数\n");
return;// 表示 函数的结束/停止 return 下方的代码永远不会被执行
}
/// 2.无返回 有参数
void noReturnHasArgus(int a, float b, char c) {
printf("无返回有参数:%d, %f %c\n",a, b, c);
}
/// 3.有返回无参数
int hasReturnNoArgus(){
printf("有返回无参数\n");
return 100;
}
/// 4.有返回有参数
int hasReturnHasArgus(int a){
printf("有返回有参数\n");
return a;
}
// 函数的三要素: 定义 调用 声明

// 函数声明
// 格式: 返回值 函数名(参数)
void test();

// 函数声明
int sumN(int n);
// 函数定义
int sumN(int n){
// 算法
//

return n;// return (1 + n) * n / 2;

}

int main(int argc, const char * argv[]) {
// argc -> 个数 argv -> 数组

// Function 函数

// 具有某种功能的代码段
// 完成某件事的一个人

// 函数的格式构成
// 函数返回值 函数名 (参数列表) { 函数体}
// 返回值: 只有void 无符号值 其他所有类型都是有返回
// 有返回值的函数 结尾处必须有return 无返回值的函数 可有可无
// 参数列表: 有参数/无参数  无参数时 只写一个void 或者什么都不写 有参数时 写(参数类型 参数名) 多个参数之间 逗号分隔
// 函数体: 要执行的代码

#if 0

/// 函数的调用
// 返回值 = 函数名(参数);
// 1.无返回无参数
noReturnNoArgus();
// 2.无返回有参数
// 也可以通过int a = 100;
noReturnHasArgus(100, 3.14, '+');
// 3.有返回无参数
int b = hasReturnNoArgus();
printf("%d %d\n", b,hasReturnNoArgus());// 可以直接调用hasReturnNoArgus
// 4.有返回有参数
int c = hasReturnHasArgus(100);
printf("%d",hasReturnHasArgus(c));
#endif

// 如 < # 输入内容 # >

/// bb

/// <#nihao#>

// 限时代码 2:30
#if 0
int a[5] = {7, 2, 4, 5, 6};
for (int i = 0; i < 5; i++) {
for (int j = 0; j <5 - 1; j++) {
if (a[j] > a[j + 1]) {
int temp = a[j];
a[j] = a[j +1];
a[j + 1] = temp;
}
}
}

for (int i = 0; i < 5; i++) {
    printf("%d",a[i]);
}

#endif

//调用测试
test();

// 练习 计算1-n的值

int n = 0;
scanf("%d", &n);
printf("shi %d\n", n = (1 + n) * n / 2);
int result = sumN(n);
printf("%d\n", result);

// 书写过程: 声明->定义->调用
// 执行过程: main函数->自定义函数->回到main函数


return 0;

}

void test(){
printf("suibian\n");
}

C语言---给定某年某月某日,输出其为这一年的第几天

C语言---给定某年某月某日,输出其为这一年的第几天

int y = 0, m = 0, d = 0, ds = 0;

scanf("%d%d%d", &y, &m, &d);
ds = d;
switch (m - 1) {
    case 11:
        ds += 30;
    case 10:
        ds += 31;
    case 9:
        ds += 30;
    case 2:
        if (y % 400 == 0 || (y % 4 == 0 && y % 100 != 0)) {
            ds += 1;
        }
        ds += 28;
    default:
        break;
}

2015-11-14-C-5_二维数组

//
// main.m
// C5_二维数组
//
// Created by YIem on 8/15/15.
// Copyright (c) 2015 www.yiem.net YIem博客. All rights reserved.
//

#import <Foundation/Foundation.h>

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

#if 0
// 二维数组的定义
// 类型 数组名[第一维度(行)][第二维度(列)] = {初值};
int a[5] = {2, 7, 4, 3, 6};
int b[2][3] = {1, 2, 3, 4, 5, 6};
// 数组最后补0
int c[2][3] = {1, 2, 3, 4};
int d[2][3] = {{1, 2}, {3, 4}};
// 第一维度(行数)可以不写 但列数必须要写
int e[][3] = {1, 2, 3, 4, 5, 6};
// 数组名[行][列] 访问元素
printf("%d\n", e[1][

// 练习: 定义一个4 * 5的二维数组 随机赋值34 - 56 输出打印
int f[4][5] = {0};// 空数组
for (int i = 0; i < 4; i++) {
    for (int j = 0; j < 5; j++) {
        f[i][j] = arc4random() % (56 - 34 + 1) + 34;
        printf("%d ", f[i][j]);
    }
    printf("\n");
}

#endif

#if 0
// 字符串数组
// 字符的二维数组 字符串的一维数组
char strings[4][20] = {"iPhone", "Sumsung", "Huawei", "ZTE"};
// 获取字符
printf("%c\n", strings[1][4]);
// 获取字符串
printf("%s\n", strings[2]);
// 字符串数组遍历
for (int i = 0; i < 4; i++) {
printf("%s\n", strings[i]);
}
// 练习: 写一个字符串数组 内容为周围四个人名字拼音 遍历输出
char names[][20] = {"JiangXingFei",
"LiZhongRen",
"WangLiQian",
"WangJun",
"ZhouYou",
"YuTao"};
int count = sizeof(names) / sizeof(names[

#if 1
// 多维数组
// 三维数组
int a[2][3][4] = {0};
// 层
for (int i = 0; i < 2; i++) {
// 行
for (int j = 0; j < 3; j++) {
// 列
for (int k = 0; k < 4; k++) {
a[i][j][k] = arc4random() % 10;
printf("%d ", a[i][j][k]);
}
printf("\n");
}
printf("\n");
}
// 数组每多一个维度 需要多加一个循环使用
// 数组元素个数 等于各个维度的乘积
#endif

return 0;

}

2015-11-14-第四次作业低能儿版本- iOS开发

//
// main.m
// 第四次作业低能儿版本
//
// Created by YIem on 15/11/13.
// Copyright (c) 2015年 www.yiem.net YIem博客. All rights reserved.
//

#import <Foundation/Foundation.h>
#define SIZE (20)
#define string
int main(int argc, const char * argv[]) {

#if 0
//第一题
int a[SIZE] = {0}, i = 0;
for(i = 0; i < SIZE; i++)
{
a[i] = i + 10;
printf("a[%d] = %d\n", i, a[i]);
}
#endif

#if 0
//第二题
int a[SIZE] = {0}, i = 0;
for(i = 0; i < SIZE; i++)
{
a[i] = 10 - i;

    printf("a[%d] = %d\n", i, a[i]);
}

#endif

#if 0
// 第三题
int a[SIZE] = {0}, i = 0, sum = 0;
for(i = 0; i < SIZE; i++)
{
a[i] = i + 10;

    printf("a[%d] = %d\n", i, a[i]);
  sum += a[i];
}

 printf("sum = %d\n", sum);

#endif

#if 0
// 第四题
int a[SIZE] = {0}, i = 0, sum = 20;
for(i = 0; i < SIZE; i++)
{
a[i] = i + 10;

    printf("a[%d] = %d\n", i, a[i]);
    sum -= a[i];
    
}
//sum = sum + (2 * a[0]); //或者 写成这样

printf("sum = %d\n", sum);

#endif
#if 0
// 第五题
int a[SIZE] = {0}, i = 0, sum = 0, max = 0, min = 0;
for(i = 0; i < SIZE; i++)
{
a[i] = arc4random() % (50 -10 +1) +10;

    printf("a[%d] = %d\n", i, a[i]);
    sum += a[i];
    if (max < a[i]){//最大值
        max = a[i];
    }
    if (0 == i || min > a[i]){//最小值
        min = a[i];
    }

}
printf("最大值=:%d\n", max);
printf("最小值=:%d\n", min);
   printf("元素之和= %d\n", sum);

#endif
#if 0
//第六题
int a1[5] ={0}, a2[5] = {0}, temp = 0, a3[10] = {0};
for (int i = 0; i < 5 - 1; i++) {
a1[i] = arc4random() % (40 - 20 + 1) + 20;
a2[i] = arc4random() % (40 - 20 + 1) + 20;

}

for (int i = 0; i < 5 - 1; i++) {
    for (int j = 0; j < 5 - 1 - i; j++) {
        if (a1[j] > a1[j + 1]) {
            int temp = a1[j];
            a1[j] = a1[j + 1];
            a1[j + 1] = temp;
        }
        
    }
   
    }
for (int i = 0; i < 5; i++) {
    printf("%d ", a1[i]);
}
printf("\n");
for (int i = 0; i < 5 - 1; i++) {
    for (int j = 0; j < 5 - 1 - i; j++) {
        if (a2[j] > a2[j + 1]) {
            int temp = a2[j];
            a2[j] = a2[j + 1];
            a2[j + 1] = temp;
        }
        
    }
   
}
for (int i = 0; i < 5; i++) {
    printf("%d ", a2[i]);
   
}
printf("\n");

for (int i = 0; i < 10; i++) {
    if (i < 5) {
        a3[i] = a1[i];
    }
    else {
        a3[i] = a2[i - 5];
    }
    }
for (int i = 0; i < 10; i++) {
    printf("%d ", a3[i]);
}
printf("\n");

#endif
// a3[i] = a1[i] a2[i];

#if 0
// 第七题
int a = 0, b = 0, c = 0;
printf("输入年月日(如20150101):\n");
scanf("%d %d %d", &a, &b, &c);

#endif

#if 0
// 第八题
int a[10] = {2, 5, 9, 6, 4, 1, 5, 8, 0, 30};
for (int i = 0; i < 10 - 1; i++) {

    for (int j = 0; j < 10  - 1 - i; j++) {
        
        if (a[j] > a[j + 1]) {
            int temp = a[j];
            a[j] = a[j + 1];
            a[j + 1] = temp;
            
        }
        
        
    }
    }
for (int i = 0; i < 10 ; i++) {
    printf("%d", a[i]);
    printf("\n");
}

#endif

#if 0
// 第九题

int a[] = {5, -9, 32, 77, 64, -24, 14, 0, 21, 45}, max = 0, min = 0, min5 = 0, max4 = 0;
for(int i = 0; i < 10; i++)
{
   
    if (max < a[i]){//最大值
        max = a[i];
        max4 = i;
    }
    if (0 == i || min > a[i]){//最小值
        min = a[i];
        min5 = i;
    }
    

}
printf("从0开始>%d\n从0开始>%d\n", max4, min5);
printf("最大值=:%d\n", max);
printf("最小值=:%d\n", min);

#endif

#if 0

//第十题


for (int i = 0; i < 50; i++) {
    char result[50] = {0};
    char str1[] = "Lanou ";
    char str2[] = "1129_class ";
    char str3[] = " is a fantastic 伐木累!";
    strcat(str1, str2);
    strcat(str1, str3);
    strcpy(result, str1);
    printf("%s", result);
}

#endif

int year,month,day,maxday,daily;
    printf("请输入年份:");
    scanf("%d",&year);
loop:printf("请输入月份:");
    scanf("%d",&month);
printf("请输入日:");
scanf("%d",&day);
    switch(month){
        case 1:daily=0,maxday=31;
            break;
        case 2: daily = 31, maxday = 28;
            break;
        case 3: daily = 59, maxday = 31;
            break;
        case 4: daily = 90, maxday = 30;
            break;
        case 5: daily = 120, maxday = 31;
            break;
        case 6: daily = 151, maxday = 30;
            break;
        case 7: daily = 181, maxday = 31;
            break;
        case 8: daily = 212, maxday = 31;
            break;
        case 9: daily = 243, maxday = 30;
            break;
        case 10: daily = 273, maxday = 31;
            break;
        case 11: daily = 304, maxday = 30;
            break;
        case 12: daily = 334, maxday = 31;
            break;
    }
       daily += day;
    printf("%d年%d月%d日是这年的第%d天!!!\n",year,month,day,daily);
    



return 0;

}
第四节作业_低版本.key.zip

2015-11-13 C4_数组 --c语言

//
// main.m
// C4_数组
//
// Created by YIem on 15/11/13.
// Copyright (c) 2015年 www.yiem.net YIem博客. All rights reserved.
//

#import <Foundation/Foundation.h>

#define SIZE (5)//宏定义
// 宏命名 1.全大写字母 eg: SIZE MAX MIN
// 2.k + 驼峰命名 eg: kSize kMax kMin
int main(int argc, const char * argv[]) {
// 参数宏
#define ADD(a, b) ((a) + (b))// ->单个加括号 整体加括号 保证数据安全

// 数组 Array

// 构造类型 用来保存一组 相同数据类型的 数据

// 数字定义
    // 类型 说明符 数组名[元素的个数] 赋值运算符(=) 初值{ 初值};
    // 元素个数为 整型表达式(常量)iOS

#if 0
int a[SIZE] ={1, 2, 3, 4, 5};
int a2[5] = {0};// 创建空数组
int a3[5] = {1, 2, 3};
// 数组创建时 元素个数和初值 最少有一个
int a4[] = {1, 2, 3, 4, 5};

// 浮点型 数组
float a5[5] = {1.2 , 3.4, 5.6};
// 字符 数组
char a6[5] = {'a', 'p', 'p', 'l', 'e'};

// 访问/ 设置 数组元素

// // 通过 数组名[索引/ 下标]
a4[1] = 100;
printf("%d\n", a4[2]);
#endif
//遍历
#if 0
int a7[] = {1, 2, 3, 4, 5};
//数组元素个数
// sizeof 获取某个表达式/类型的大小
// unsigned long > %lu
printf("**%lu\n", sizeof(a7[]));
// 个数 = 总大小 / 单个大小

int count = sizeof(a7) / sizeof(int)//也可以写成sizeof(a7[0])

;
// i >index 索引
for (int i = 0; i < count; i++) {
printf("%d\n", a7[i]);
}
#endif
// 练习 1.定义一个具有20个元素的整型数组, 每个元素的取值范围是30-70之间,求数组的和
#if 0
int a[20] = {0}, sum = 0;
for (int i = 0; i < 20; i++) {
a[i] = arc4random() % (70 -30 +1) +30;
sum += a[i];
printf("-%d",a[i]);
}
printf("\nsum = %d\n", sum);

// 练习2.复制一个数组,即两个数组 容量一样,把其中一个数组中的元素 复制 到另外一个数组中

int b[20] = {0};
for (int i = 0; i < 20; i++) {
    b[i] = a[i];
     printf("-%d",b[i]);
}

#endif

// 练习3.生成 2个数组,每个数组都有 10个元素 ,元素取值范围 20-40之间,数组对应元素相加,放到另外一个数组中

#if 0
int a1[10] = {0}, a2[10] = {0}, a3[10] = {0};
for (int i = 0; i < 10; i++) {
a1[i] = arc4random() % (40 - 20 + 1) + 20;
a2[i] = arc4random() % (40 - 20 + 1) + 20;
// 这样子 赋值 值不一样
a3[i] = a1[i] + a2[i];
}
for (int i = 0; i < 10; i++) {
printf("%d ", a1[i]);
}
printf("\n");
//
for (int i = 0; i < 10; i++) {
printf("%d ", a2[i]);
}
printf("\n");
for (int i = 0; i < 10; i++) {
printf("%d ", a3[i]);
}
printf("\n");

#endif
// 区分概念
// int a[5] -> 定义数组 [5] 代表元素个数
// a[5] 访问 -> 数组使用 [5] 代表下标/索引
// 一个5个元素的数组 下标的变化为0-4 (元素个数-1) 如果访问a[5] 则发生数组越界

/****** 数组排序******/

//冒泡排序

#if 0
int a[5] = {2, 7, 4 , 9, 6};
// 外层 循环 控制每次找到 一个最大值 放在最后
// -1 如果是5个数 4个数序时 整个数组就会有序
for (int i = 0; i < 5 - 1; i++) {
// 内层 循环 控制比较和交换
for (int j = 0; j < 5 - 1 - i; j++) {
// 比较 和 交换
// -1 防止越界访问
// -i 防止重复对有顺序的数进行比较
if (a[j] > a[j + 1]) {
int temp = a[j];
a[j] = a[j + 1];
a[j + 1] = temp;

        }
        
        
    }
    // 打印
    for (int i = 0; i < 5; i++) {
        printf("-%d", a[i]);
    }
    printf("\n");
}

#endif
// 练习: 随机产生 10个[20-40]数,幷对10个数从小到大排序 从大到小排序
#if 0
int a[10] ={0};
for (int i = 0; i < 10 - 1; i++) {
a[i] = arc4random() % (40 - 20 + 1) + 20;
}
for (int i = 0; i < 10 - 1; i++) {
// 内层循环 控制比较和交换
// -1 防止越界访问
// -i 防止重复对有序区的数进行比较
for (int j = 0; j < 10 - 1 - i; j++) {
// 比较和交换
if (a[j] > a[j + 1]) {
int temp = a[j];
a[j] = a[j + 1];
a[j + 1] = temp;
}

    }
    
}
for (int i = 0; i < 10; i++) {
    printf("%d ", a[i]);
   
}
printf("\n");

#endif

#if 0
int a[10] ={0};
for (int i = 0; i < 10 - 1; i++) {
a[i] = arc4random() % (40 - 20 + 1) + 20;
}
for (int i = 0; i < 10 - 1; i++) {
// 内层循环 控制比较和交换
// -1 防止越界访问
// -i 防止重复对有序区的数进行比较
for (int j = 0; j < 10 - 1 - i; j++) {
// 比较和交换
if (a[j] < a[j + 1]) {
int temp = a[j];
a[j] = a[j + 1];
a[j + 1] = temp;
}
}
}
for (int i = 0; i < 10; i++) {
printf("%d ", a[i]);
}
printf("\n");
#endif

#if 1
/****** 字符数组/字符串******/

// 字符数组
char c[] = {'a', 'p', 'p', 'l', 'e', };// 可以加'\0' 变成字符串
//字符串 String
char string[] = "apple";// 有\0 时结束打印
//字符串的结尾处有"\0" 总大小 = 字符个数+1
printf("%lu %lu\n", sizeof(c), sizeof(string));

// 打印字符串
int i = 0;
while (string[i]) {
    printf("%c", string[i]);
    i++;
}
printf("\n");
// 打印
// 数组名为数组的 首地址 通过首地址 逐个访问数组元素 直到\0 停止
printf("%s\n", string);

// 字符串操作函数
// <string.h> 库文件
// 字符串长度 string length
// 字符个数不包含结尾的\0
printf("%lu\n", strlen(string));

//**** 字符串考贝 string copy
char newStr[10] = "";
// 参数一: 目标字符串
// 参数二: 原字符串
strcpy(newStr, string);
printf("%s\n", newStr);

//**** 字符串拼接
// 参数一: 目标字符串
// 参数二: 原字符串

strcat(newStr, "TV");// 在appple 后面接TV
printf("%s\n", newStr);

//**** 字符串比较 string compare

char str1[] = "iPhone6s";
char str2[] = "iPhone7";
// 第一个第二个字符串中 从左向右 第一个不相同的字符对应的 ASCII码的差值计算
int result = strcmp(str1, str2);
printf("%d\n", result);

//结果为负 升序 Ascending
//结果位正 降序 Descending

#endif

//****** ******//

// 参数宏使用
printf("%d\n", ADD(3, 5) * ADD(3, 5));
//宏的作用 : 完全替换
// 宏在使用时,需要考虑数据安全问题

return 0;

}

2015-11-12 第三节作业

//
// main.m
// 第三节作业
//
// Created by YIem on 15/11/12.
// Copyright (c) 2015年 www.yiem.net YIem博客. All rights reserved.
//

#import <Foundation/Foundation.h>

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

//第一题

#if 0
int max = 0;
for (int i = 0; i < 20; i++) {
int a = arc4random() % (100 - 10 + 1) + 10;
printf("%d\n", a);
max = max > a ? max : a;//最大值
}
printf("max = %d\n", max);
#endif

//第二题

#if 0
int i, j, k, n, m = 0;
for(n=100;n<1000;n++)
{
i=n/100;
j=n/10%10;
k=n%10;
if(i100+j10+k==iii+jjj+kkk){
printf("%d ",i100+j10+k);
m++;
}
}
printf("\n");
printf("%d\n", m);
#endif
//第三题
#if 0
int a, b, c;
for( a = 0; a < 10; a++){//百位0-9
for( b = 0; b < 10; b++){//十位0-9
for( c = 0; c < 10; c++){//个位0-9
if((a * 100 + b * 10 + c) + (c * 100 + b * 10 + a) == 1333){
printf("%d %d %d\n", a, b, c);
}
}
}
}
#endif

//第四题

    //第一种/ 不会啊 数学老师早爆炸了

#if 0
int num1 = 0, num2 =0;
printf("请输入两个数:");
scanf("%d%d", &num1, &num2);
for (int gcd = num1 < num2 ? num1 : num2; gcd >= 1; gcd--) {
if (num1 % gcd == 0 && num2 % gcd == 0) {
printf("最大公约数是:%d\n最小公倍数是:%d\n", gcd, (num1 * num2) / gcd );
break;
}
}

#endif

    //第二种

//第五题

#if 0
double m, h, sum;//定义类型
int k ; //开始时 h , m 一样
for (h = m = 100, sum = 0, k = 1;k <= 10; k++) {
printf("%d-%.2f-%.2f\n", k, h, m);//k=次数,h=弹起高度,m=落下高度
sum += m;// 计算落下 的总高度
m = h;//第二次落下高度对应第一次弹起高度
h = m / 2.0;//跳回原来高度的一半
if ( k == 10 ) {// 当K 等于10时输出以下
printf("%.2f\n", h);//第十次高
printf("%.2f\n", sum);//落下的总 多少米
}
}

#endif

//第六题





















return 0;

}
第三节作业.key.zip

2015-11-12 -C3_循环结构

//
// main.m
// C3_循环结构
//
// Created by YIem on 15/11/12.
// Copyright (c) 2015年 www.yiem.net YIem博客. All rights reserved.
//

#import <Foundation/Foundation.h>

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

/* // 限时代码 4min
char a = 0;
scanf("%c", &a);
if (a > '0' && a < '9') {
printf("数字\n");
} else if (a > 'a' && a < 'z'){
printf("小写字母\n");
} else if (a >'A' && a < 'Z'){
printf("大写字母\n");

}   else{
    printf("其他\n");
}
*/

/****** 程序的三种结构******/
//  顺序 分支 循环


// 循环
    //满足条件时 重复做某事
    // 循环条件 下重复执行  一段代码


/****** for 循环 ******/
// 循环增量初始化    条件        增量变化

// for (int i = 0; i < 5; i++) {
// printf("Yiem \n");
// // system("say YIem");// 系统函数 发出声音
// }
// // 死循环
// for (; YES; ) {
// printf("死循环\n");
// }

    //练习: 正序打印1-5的数
    //

// for (int i = 1; i <= 5; i++) {
// printf("%d\n", i);
// }
// for (int i = 5; i >= 1; i--) {
// printf("%d\n", i);
// }

// // 练习 打印1-100之间的偶数
// for (int i = 1; i <= 100;i++) {
// //判断偶数
// if (i % 2 ==0){
// printf("%d\n", i);
// }
//
// }
// 练习 1用for打印出1-100之间7的倍数
// 2用for打印1-100个位为7的数
// 3用for打印出1-100之间十位为7的数
// 4用for打印出1-100之间不是7的倍数并且不包含7的数
// for (int i = 1; i <= 100; i++) {
// if (i % 7 ==0) {
// printf("%d\n", i);
// }
//
// }
// for (int i = 1; i <= 100; i++) {
// if (i % 10 == 7) {
// printf("%d\n", i);
// }
// }
// for (int i = 1; i <= 100; i++) {
// if (i / 10 ==7) {
// printf("%d\n", i);
// }
// }
// 第一种
// for (int i = 1; i <= 100; i++) {
// if (i % 7 != 0 && i % 10 != 7 && i / 10 !=7) {
// printf("%d\n", i);
// }
//
// }
//第二种
// for (int i = 1; i <= 100; i++) {
// if (! (i % 7 == 0 || i / 10 == 7 || i % 10 ==7)) {
// printf("%d\n", i);
// }
//
// }
/* // 敲7 游戏
for (int i = 1; i <= 100; i++) {
if (60 == i) {
printf("Game Over\n");
break;// 打断/终止 本层循环
}
if (i % 7 ==0 || i / 10 ==7 || i % 10 == 7) {
printf("啪\n");
continue;// 继续循环 跳过后续的代码
}
printf("%d\n",i);

}

*/

/****** 随机数******/
// printf("%d\n",arc4random() % 11);
// 范围随机数的公式 最大值 最小值 最小值
// arc4random() % (max - min + 1) + min

// printf("%d\n", arc4random() % (98 - 46 + 1) + 46);

// 练习 用for打印10个随机数(范围10-30),求最大值和最小值

//  第一种
/*
for (int i = 0; i < 10 ; i++) {
    printf("%d\n", arc4random() % (30 - 10 + 1) + 10);
}
 */
//  第二种
/*
int max = 0, min = 30;// 解决方案1
for (int i = 0; i < 10 ; i++) {
   int a =  arc4random() % (30 - 10 + 1) + 10;
    printf("%d ", a);
    max = max > a ? max : a;
    // 第一次进入循环时 直接赋值
    if (0 == i){
        min = a;// 解决方案2
    }
    min = min < a ? min : a;
 */
    /* 第二种 最大值最小值 解决方案
    if (max < a){//最大值
        max = a;
    }
    if (0 == i || min > a){//最小值
        min = a;
    }
     */

// }
// 最小值 有两种解决方案
// printf("\n");
// printf("max = %d\n", max);
// printf("min = %d\n", min);
//

/****** 循环嵌套******/
// 外层循环控制 行数
// for (int j = 0; j < 3; j++){
// //内层循环控制 一行中的内容长度
// // 打印5个* // for (int i = 0; i < 5; i++){
// printf(" * ");
// }
// // 回车
// printf("\n");
// }
/* int w = 0 , l = 0;// 自定义 打印几行
printf("请输入\n");
scanf("%d", &w );
printf("请输入\n");
scanf("%d", &l );

for (int i = 0; i < w; i++){
    for (int j = 0; j < l; j++) {
        printf("*");
    }
    printf("\n");
}
 */

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

            // 打印空心
    if (i != 0 && i != 4 - 1) {// 是否是第二行和第三行是第二行或者是第三行的时候进行打印*
        //
        printf("*");
        // 打印空格
        for (int j = 0; j < 6 - 2; j++) {
            printf(" ");
        }
        printf("*");
        printf("\n");
        continue;
    }
            for (int j = 0; j < 6; j++){
                printf("*");
            }
            // 回车
            printf("\n");
        }

/
/

// 练习: 打印9*9乘法口诀
for (int i = 1; i <= 9; i++) {
for (int j = 1; j <= i; j++) {
printf(" [ %d * %d = %d ] ", j, i, j * i);
}
printf("\n");
}
*/

#if 0
// 练习: 000-999
// 百位
for (int i = 0; i < 10; i++) {
// 十位
for (int j = 0; j < 10; j++) {
// 个位
for (int k = 0; k < 10; k++) {
printf("%d %d %d\n", i, j, k);
}
}
}
#endif
#if 0
/****** while******/
int i = 1;
while (i <= 100) {
printf("%d\n", i);
// while 中一定不要忘记写循环变量的增加
i++;
}

// for 模拟while
int j = 1;
for (; j <= 100;) {
    printf("%d\n", j);
    j++;
}

#endif
#if 0
// 练习 : 10亿 每天花一半 能花多少天

int money = 1000000000, days = 0;
//当有钱时 循环继续
while (money) {
    //每天 花一半
    money /= 2;
    days++;
}
printf("%d\n", days);

#endif
/****** do...while 循环******/
/* int i = 1;
do {
printf("%d\n", i);
i++;
} while (i <= 100);

//while死循环
//  1/YES
while (1) {
    
}
//for死循环
for (; 1; ){
    
}

*/
#if 0 // int的最大值 + -21亿之间
// 练习" 输入一个整数 求这个整数的位数
int num = 0, b = 0;
printf("输入:\n");
scanf("%d", &num);

while (num) {
    num /= 10;
  
    b++;
}
printf("%d\n", b);

#endif

return 0;

}