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

}

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][0]);
// 二维数组遍历
// 外层循环 控制第一维度(行)
for (int i = 0; i < 2; i++) {
    // 内层循环 控制第二维度(列)
    for (int j = 0; j < 3; j++) {
        printf("%d ", e[i][j]);
    }
    printf("\n");
}

// 练习: 定义一个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[0]);
for (int i = 0; i < count; i++) {
    printf("%s\n", names[i]);
}
printf("--------华丽丽的分割线------\n");
for (int i = 0; i < count - 1; i++) {
    for (int j = 0; j < count - i - 1; j++) {
        if (strcmp(names[j], names[j + 1]) > 0) {
            char temp[20] = "";
            strcpy(temp, names[j]);
            strcpy(names[j], names[j + 1]);
            strcpy(names[j + 1], temp);
        }
    }
}
for (int i = 0; i < count; i++) {
    printf("%s\n", names[i]);
}

endif

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[0]));
// 个数 = 总大小 / 单个大小

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("%dn", i);
// }
// for (int i = 5; i >= 1; i--) {
// printf("%dn", i);
// }

// // 练习 打印1-100之间的偶数
// for (int i = 1; i <= 100;i++) {
// //判断偶数
// if (i % 2 ==0){
// printf("%dn", 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("%dn", i);
// }
//
// }
// for (int i = 1; i <= 100; i++) {
// if (i % 10 == 7) {
// printf("%dn", i);
// }
// }
// for (int i = 1; i <= 100; i++) {
// if (i / 10 ==7) {
// printf("%dn", i);
// }
// }

// 第一种

// for (int i = 1; i <= 100; i++) {
// if (i % 7 != 0 && i % 10 != 7 && i / 10 !=7) {
// printf("%dn", i);
// }
//
// }

//第二种

// for (int i = 1; i <= 100; i++) {
// if (! (i % 7 == 0 || i / 10 == 7 || i % 10 ==7)) {
// printf("%dn", 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("%dn",arc4random() % 11);

// 范围随机数的公式  最大值  最小值     最小值
// arc4random() % (max - min + 1) + min

// printf("%dn", 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 = %dn", max);
// printf("min = %dn", 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-蓝鸥 第二次作业

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

import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {
/*第一题

int a;
printf("请输入一个整数");
scanf("%d", &a);
if(a%2 == 0)//a除以2,是否有余数,判断余数是否等于0.
    printf("%d是偶数\n", a);
else printf("%d是奇数\n", a);
*/
/*第二题
int a2 = 0;
printf("输入一个数\n");
scanf("%d", &a2);
if (a2 > 0) {
    printf("正数\n");
}   else if (a2 < 0){
    printf("负数\n");
}   else if (a2 == 0){
    printf("0\n");
}
*/
/*第三题
int a3_1 = 0, a3_2 = 0, a3_3 = 0;
printf("输入第一个年龄\n");
scanf("%d", &a3_1);
printf("输入第二个年龄\n");
scanf("%d", &a3_2);
printf("输入第三个年龄\n");
scanf("%d", &a3_3);
if (a3_1 > a3_2 && a3_1 > a3_3) {
    printf("最大者的年龄:%d", a3_1);
}   else if (a3_2 > a3_3 && a3_2 > a3_1){
    printf("最大者的年龄:%d", a3_2);
}   else if (a3_3 > a3_1 && a3_3 > a3_2){
    printf("最大者的年龄:%d", a3_3);
}

*/

/*第四题

float a4 = 0;
printf("输入行李重量\n");
scanf("%f", &a4);
if (a4 <= 50 ) {
    printf("价格为:%.2f",a4 * 0.15);
} else if (a4 >50){
    printf("价格为:%.2f",(50 * 0.15) +((a4 - 50) * 0.25));
}
*/
/*第五题
float x = 0, y = 0;

printf("输入X\n");
scanf("%f", &x);
if (x < 1) {
    y = x;
}else if (x >= 1 && x < 10){
    y = 2 * x - 1;
}else if (x >= 10){
    y = 3 * x - 11;
}
printf("y的值为:%.2f",y);
*/

/*第六题
float a6_1 = 0, a6_2 = 0;

char a6_4 ;


printf("输入如34+56:\n");
scanf("%f%c%f", &a6_1,&a6_4,&a6_2);

if (a6_4 == '+') {
    printf("运算结果为:%.2f\n", a6_1 + a6_2);
}   else if (a6_4 == '-'){
    printf("运算结果为:%.2f\n", a6_1 - a6_2);
}   else if (a6_4 == '/'){
    printf("运算结果为:%.2f\n", a6_1 / a6_2);
}   else if (a6_4 == '*'){
    printf("运算结果为:%.2f\n", a6_1 * a6_2);
}
*/
/*第七题
int a7_1 = 0, a7_2 = 0, a7_3;
printf("输入第一个数据\n");
scanf("%d", &a7_1);
printf("输入第二个数据\n");
scanf("%d", &a7_2);
printf("输入第三个数据\n");
scanf("%d", &a7_3);
BOOL c1 = a7_1 + a7_2 > a7_3;
BOOL c2 = a7_1 - a7_2 < a7_3 && a7_3 > a7_2 - a7_1;
if (c1 && c2) {
    printf("为三角形");
}
  else{
    printf("不为三角形");
}
*/
/*第八题
 //第一种

int a8_1 = 0, a8_2 = 0, a8_3 = 0;

printf("请输入三个数:");
scanf("%d%d%d", &a8_1, &a8_2, &a8_3);

if ((a8_1 > a8_2 && a8_1 < a8_3) || (a8_1 < a8_2 && a8_1 > a8_3)) {
    printf("%d为中间数\n", a8_1);
} else if ((a8_2 > a8_1 && a8_2 < a8_3) || (a8_2 < a8_1 && a8_2 > a8_3 )){
    printf("%d为中间数\n", a8_2);
} else if ((a8_3 > a8_2 && a8_3 < a8_1) || (a8_3 < a8_1 && a8_3 > a8_2)){
    printf("%d为中间数\n", a8_3);
}
*/
/*第二种 蒙蔽了
float a8_1 = 0, a8_2 = 0, a8_3 = 0;
int b8_1 = 0, b8_2 = 0, b8_3 = 0, b8_4 = 0;
printf("请输入三个数:");
scanf("%f%f%f", &a8_1, &a8_2, &a8_3);
b8_1 = a8_1 >= a8_2 ? a8_1 : a8_2;
b8_1 = b8_1 >= a8_3 ? b8_1 : a8_3;
b8_2 = a8_1 <= a8_2 ? a8_1 : a8_2;
b8_2 = b8_2 <= a8_3 ? b8_2 : a8_3;
b8_3 = a8_1 + a8_2 + a8_3;
b8_4 = b8_3 - b8_1 - b8_2;
printf("b8_4 = %d\n", b8_4);
*/


return 0;

}

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