标签 c 下的文章

一些c语言学习中的话,也是我的一个总结

2015年11月09日进入蓝鸥学习,然后现在第一阶段完事2015-11-24,两周/15天.
第一阶段学的是C语言,也是一个基础,之前在学校的时候也有学过C好像是2013年末吧,
然后上课也没有听过,在加上时间这么长,也全部忘记了.
然后2015-11-10 开始正式学习C语言,从开始学都现在,也从有点了解都慢慢遗忘,我也搞不懂到底怎么了.
2015-11-23-晚自习20:00开始C语言的测试,然后发现什么也不会,看不明白,尤其是在需要计算的时候,更加晕乎乎的.我不禁怀疑我的思考问题的方式,理解问题的方式(或者说是智商不够用),然后最近这几天特别的烦躁,在凳子上坐不住.而且特别压抑,总感觉自己这个不行,那个不行.而且奇怪的是上课的时候,我明明记住了,但是等下课之后,就考试迷迷糊糊的,一点一点忘记.我自己也搞不明白,好像没有学进去的样子,(好像是左耳朵进来右耳朵出去),弄的我也很尴尬,在别人学习进度都不错的情况下,感觉脱了后腿.
然后学习的时候,思想老是走空,不知道在想什么,不受控制的样子.而且像概念什么的也没有理解,或者说是没有记住,然后老师一提问,我就蒙逼了,很是尴尬.
下一阶段就是OC了,感觉好遥远,也忐忑,不会,或者是跟不上,或者又发生什么事.很是蛋疼.
唉,就这些吧,看情况了!或者说我是真不适合学这个,蛋疼的日子!

2015-11-20 C9_结构体指针

//
// main.m
// C9_结构体指针
//
// Created by YIem on 15/11/20.
// Copyright (c) 2015年 www.yiem.net YIem博客. All rights reserved.
//

#import <Foundation/Foundation.h>

struct test {
int a;
float b;
char c;
};
typedef struct test TEST;
int main(int argc, const char * argv[]) {

// 结构体指针
int  a = 100;
int *p = &a;
TEST t = {1, 2, 'a'};
TEST *pT = &t;
printf("%d\n", t.a);
printf("%d\n", (*pT).a);
// 高能: -> 指向操作符
printf("%d\n", pT->a);
// 变量名.成员变量
// (*地址).成员变量
// 地址->成员变量
    // 这三种变量形式都是一样的




TEST t1 = {2, 2, 'b'};
TEST t2 = {3, 3, 'c'};
TEST ttt[] = {t, t1, t2};
// 结构体数组的指针遍历
for (int i = 0; i < 3; i++) {
    TEST *tt = ttt + i;
    // ttt[i].a
    // (*(ttt + i)).a
    // (ttt + i)->a
    printf("%d %f %c\n", tt->a, tt->b, tt->c);//
}





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");
}

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 -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;

}

2015-11-11 C语言 C2_分支结构

//
// main.m
// C2_分支结构
//
// Created by YIem on 15/11/11.
// Copyright (c) 2015年 www.yiem.net YIem博客. All rights reserved.
//

#import <Foundation/Foundation.h>
//枚举
enum seasons{
//将一些字符串和数字对应
//枚举值默认从0开始 向下逐行加1
//提高可读性
Spring = 1,
summer,
autumn,
winter,

};

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

/******BOOL类型******/
    //表示真假
    //值:YES/NO
    //计算时 系统会自动替换为1/0
    //非0即为真
BOOL b1 = YES;
BOOL b2 = NO;
printf("b1:%d b2:%d\n", b1, b2);

/******关系运算符******/

    // > >= < <= == !=
BOOL b3 = 5 > 3;
printf("b3: %d\n", b3);
BOOL b4 = 3 < 4 < 5;//不能连续判断
printf("b4: %d\n",b4);

/******逻辑运算符******/
    //  与(&&) 运算符左右两侧的表达式都为真 逻辑表达式为真
    //  或(||) 运算符左右两侧的表达式都为假 逻辑表达式为假
    //  非(!) 对当前的结果取反
BOOL b5 = 3 < 4 && 4 < 5;
printf("b5: %d\n",b5);

// BOOL b5 = 3 < 4 && 4 < 5;
// printf("b5: %d\n",b5);
// BOOL b5 = 3 < 4 || 4 < 5;
// printf("b5: %d\n",b5);
BOOL b6 = !(3 < 4);
printf("b6: %d\n",b6);
//短路
// e1 && e2 表达式
//短路与 一假即假 e1为假时 e2的结果对整体没有影响 不会被执行
//短路或 一真为真 e1为真时 e2的结果对整体没有影响 不会被执行

/******if 语句******/
    // 1.如果...就...

// if (如果看到卖西瓜的) {
// 买一个包子
// }

// if (5 > 3) {
// printf("你真聪明\n");
// }
//练习:输入m 打印男
// char c = 0;
// scanf("%c",&c);
// if ('m' == c) {
// printf("男\n");
//
// }
// 2.如果...就...否则...
// char b7 = 0;
// scanf("%c",&b7);
// if ('m' == b7) {
// printf("男");
// } else {
// printf("女");
// }

//整行移动代码 command + Alt []
/*
int b8 = 0;
scanf("%d", &b8);
BOOL cond1 = b8 % 400 == 0;
BOOL cond2 = b8 % 4 ==0;
if (cond1 || cond2) {
    printf("闰年");
} else {
    printf("平年");
}

if(b8 % 400 == 0 || (b8 % 4 == 0 && b8 % 100 != 0))
{
    printf("润年");
}
*/
/*    // 3.如果...就...否则如果...就...
char key = 0;
printf("input:");
//getchar();//   从键盘缓冲区获取\n 相当于消除\n
scanf("%c", &key);
if (key > '0' && key <= '9') {
    printf("数字\n");
} else if (key >= 'a' && key <= 'z'){
    printf("小写字母\n");
} else if (key >= 'A' && key <= 'Z'){
    printf("大写字母\n");
} else {
    printf("其他字符\n");
}
*/

/****** Switch...case...******/
// int telephone = 0;
// scanf("%d", &telephone);
// // switch的条件中 必须填写整型表达式
// switch (telephone) {
// case 110:
// printf("职业规划部1\n");
// break;// break 停止当前case 如果没有break 则会顺序向下执行下一个case
// case 119:
// printf("职业规划部2\n");
// break;
// case 120:
// printf("职业规划部3\n");
// break;
// case 130:
// printf("职业规划部4\n");
// break;
// case 140:
// {
// int a = 0;
// // case 中定义变量时 必须加括号约束
// printf("职业规划部5\n");
// break;
// }
// default:
// printf("其他\n");
// break;
// }
//
// 枚举和switch 配合使用
// 练习: 从控制台输入1~4, 对应打出 春夏秋冬 的英文单词

// int season = 0;
// scanf("%d",&season);
// switch (season) {
// case 1:
// printf("春\n");
// break;
// case 2:
// printf("夏\n");
// break;
// case 3:
// printf("秋\n");
// break;
// case 4:
// printf("冬\n");
// break;
//
// default:
// break;
// }
int x = 0;
scanf("%d",&x);
switch (x) {
case 1:
printf("星期一\n");
break;
case 2:
printf("星期二\n");
break;
case 3:
printf("星期三\n");
break;
case 4:
printf("星期四\n");

    default:
        break;
}




    return 0;

}
C2_分支结构.zip

2015-11-10-在蓝鸥的第二天也是学习C语言的第一天

看看我们上的内容吧!
最开始上的是C语言,慢慢来吧!

IOS
// YIem
// main.m 文件名
// C1_C基础 工程名
//
// Created by dllo on 15/11/10. 作者/时间
// Copyright (c) 2015年 www.yiem.net YIem博客. All rights reserved. 版权所有,翻版必究,如有雷同,还是我的。
//
/* 多行注释
*/
// command + R 运行
// command + B 编译
// command + / 注释
// command + shift + N 创建新工程
#import <Foundation/Foundation.h>
// mian函数/主函数
// 程序运行的开始 从主函数开始运行 到主函数最后的括号停止
// 一般应用程序 只有一个主函数
int main(int argc, const char * argv[]) {
// 代码开始的地方

/******数据类型******/
    //  字符型 char    符号          1字节
    //  整型  int 整数              2字节
    //  浮点型 float   小数          4字节 7位小数位
    //  短整型 short               2字节
    //  长整型 long                4/8字节
    //  双精度浮点型  double      8字节     15位小数位
/******常量******/
    //程序运行期间不能被改变的量
    //字符:   '+','1','a'    只能有一个内容
    //整型:   100,-100    没有小数点是整型
    //浮点型:  3.14    有小数点是浮点型
/******变量******/
    //是一个容器 是一段存储空间
    //程序运行期间 变量的值(容器中的内容)可以发生变化
    //为了方便使用 给变量起名 方便使用
    //变量的命名规范:
        //  1.命名只能有数字、字母、下划线组成,并且不能以数字开头
            //  eg: room8,_class,class_room
        //  2.不能和系统关键字/保留字重名
        //  3.不能重复命名
        //  4.见名知意()
            //  eg: classRoomName
    //变量的定义
        //从内存中开辟一段存储空间 设置变量名 给定初始内容
        //类型说明符 变量名 赋值运算符   初值
        int         age     =        10;
  char sex1 = 'f';
//赋值运算
//把=右侧的内容 复制一份 放置在=左侧的变量中
int a = 100;
int b = 0;
b = a;  //把100(a)赋值(复制)给b
printf("a = %d, b = %d\n~~~", a, b);// "%d 占位符" "\n 回车符"

    //练习:定义俩个变量  交换值
int var1 = 3 ,var2 = 5;
int temp = 0;
temp = var1;
var1 = var2;
var2 = temp;
printf("var1 = %d, var2 = %d\n", var1, var2);
//第一种方法

/*
int var1 = 3 , var2 = 5, var3;
var3=var1;
var1=var2;
var2=var3;
printf("var1 = %d, var2 = %d\n",var1 , var2);
//第二种方法

int c = var1;
int d = var2;
c = d;
int e = var1;
int f = var2;
f = e;
printf(" %d, %d\n", f, c);
//第三种方法
*/

/******运算符******/
//算术运算符
// + - * / %
int num1 = 3, num2 = 5;
float result = num1 * 1.0 / num2;//先从右侧开始运算
printf("result = %f\n", result);
//自增/自减运算符
// ++/--
// a++ 先用再加
// ++a 先加再用
/eg: int a=3;
int b=a++;
int b=++a;
/
//复合运算符
// += -= = /= %=
//如 a= a + 1;可以写a+=1;
//如 a= a - 1; a-=1;
//如 a= a * 1; a
=1;
//如 a= a / 1; a/=1;
//如 a= a % 1; a%=1
//代码规范
/
1.运算符左右两侧 加空格
2.逗号后 加空格
/
/

int v;//必须定义不然输出值是"乱码"
printf("v = %d", v);
/
/******表达式******/
//表达式是变量/常量/运算符组合而成
//每一个表达式是都有返回结果的
printf("%d\n", a);
printf("%d\n", a =1);
//语句
//以;结尾的内容都称之为语句 是C语言执行时的最小单位
int new = 10, new1 = 10;
;;;;;;;;//这种形式是空语句
/******格式化输入/输出函数******/
// 格式构成:普通字符&转义字符
// %d 整型
// %f 浮点型
// %c 字符型
// %ld 长整型
// %lf 双精度浮点型
// %hd 表示输出短整型
printf("a = %d %% \ \n", 100); //'%d' 打印整型 '%%'百分号 '//' 打印出一个'/'
printf("hello,word\n");
printf("%9d\n", 100);//'%9d' 输出时占9个占位符
printf("%04d\n", 100);//不足的输出位 补0
printf("%2d\n", 100);//对数据无法修改,只有美化意义
printf("%-4d~~\n", 100);//输出左对齐
printf("%f\n", 3.14);
printf("%.2f\n", 3.14);//'.2'保留小数点后两位
printf("%f5.2\n", 3.14);//'5.2' 5 代表小数整体占5个输出位(小数点占一位) .2 代表小数点后保留两位小数
/
//输入函数
int inputNumber = 0;
printf("请输入'100':");
scanf("%d",&inputNumber);
//输入函数中 格式串中一般只写占位符
//&取地址符 获取变量空间的位置
printf("num = %d\n", inputNumber);
/
//练习:输入长方形的长宽 输出长方形面积
/
int c1 = 0, k2 = 0;//第一种
printf("请输入长:");
scanf("%d", &c1);
printf("请输入宽:");
scanf("%d", &k2);
int mj=c1
k2;
printf("面积等于:%d\n", mj);
/
//练习:输入长方形的长宽 输出长方形面积
/

int length = 0, width = 0, area = 0;//第二种
scanf("%d%d", &length, &width);
area = length * width;
printf("%d\n", length * width);
*/

return 0;

}

C1_C基础.zip

时间:2015-11-10-12-49

Title - Artist
0:00