2015年11月

2015-11-18- C7_指针-pointer 指针是变量

//
// main.m
// C7_指针
//
// Created by YIem on 15/11/18.
// Copyright (c) 2015年 www.yiem.net YIem博客. All rights reserved.
//

#import <Foundation/Foundation.h>

void printArray(int a[], int count);//a[] = *a
void printArray(int *a, int count) {

}

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

#if 0

// 指针 pointer  指针是变量
// 指针变量 专门保存 地址数据
// 类型 变量名 = 初值;
int      a    =   0;
int *    p   =  NULL;
// int * 指针变量类型
// p  变量名
// NULL 空指针
int *p1 = NULL;// 通常写法
int * p2 = NULL;//
int*p3 = NULL;
int* p4 = NULL;
int b = 0, c = 0, *p5 = NULL;
// 获取地址
int d = 100;
int *p6 = NULL;
// &取地址符 获取某个变量空间的地址
p6 = &d;
// %p 打印地址
printf("%p\n", p6);
printf("%p\n", main);

float e = 0;
float *pE = NULL;
pE = &e;
printf("%p\n", pE);

- 阅读剩余部分 -

/// 两门课以上不及格

/// 两门课以上不及格
void printBujige(Student stu[], int count) {
// 遍历
for (int i = 0; i < count; i++) {
// 保存不及格课数
int num = 0;
// 临时学生结构体
Student s = stu[i];
// 判断不及格的课数
if (s.Chinese < 60) {
num++;
}
if (s.Math < 60) {
num++;
}
if (s.English < 60) {
num++;
}
// 查看课数
if (num >= 2) {
printf("number: %d\n", s.number);
if (s.Chinese < 60) {
printf("Chinese: %.2f\n", s.Chinese);
}
if (s.Math < 60) {
printf("Math: %.2f\n", s.Math);
}
if (s.English < 60) {
printf("English: %.2f\n", s.English);
}

    }
}

}

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