第n天

今天主要是学习数组与字符串的处理
还有冒泡排序还是不6, 一些算法要琢磨很久 , 代码跟书上不一样 , 但逻辑还是差不多的
(比如冒泡就不习惯从后往前的移位方法, 脑子只能接受从前往后比较, 然后升序就让大的往后挪, 降序就让小的往前挪)
然后开始看指针
例题都比较蛋疼, 都是一些可以不用指针 , 而且用了也没有变方便的例题
看看能不能写成直播 :(

今天的笔记(Xmind)

数组
    一维数组
        定义
            定义一个有8个元素的整型数组a , 10个元素的单精度实型数组d
                int a[8];  float d[10];
        引用
            short y[2]; //短整型数组, 下标应为 0,1
判断下面的写法对否:
                y[2] = 10;  错
                scanf("%f",&y[3]);  错
        初始化
            int a[10] = {1,2,3,4,5,6,7,8,9,10}
            int a[] = {1,2,3}
            int a[10] = {1,2,3};  //未赋值的 , 从 e[3] 开始值为0
            char c[10] = {'a', 'b'};  // 未赋值的 , 从 c[2] 开始值为空字符 即  '\0'
        程序设计举例
            从键盘上输入10个字符 , 然后按相反次序输出
            输入10个实数存入数组 , 求其中最小数 及其序号 (序号从1开始)
            使用 "选择排序法" 对一维数组中的整数进行排序 , 使得数组中前n个元素的值按从小到大排列
                如何求数组长度
                    int a[] = { 21,89,33,26,19,30,55,15 };
printf("%d\n", sizeof(a)/sizeof(int));
                    除数是对应类型数据的字节长度
            用 "冒泡排序法" , 对一维数组中前n个整数按从小到大排序
        默认初值: 整数:0 , 浮点数:0.0 字符型: '\0'
    二维数组
        定义&引用
            int a[3][5];
                定义一个三行五列的数组
        初始化
            int a[2][3] = {{1,2,3},{4,5,6}};
                1 - 2 - 3
4 - 5 - 6
            int a[2][3] = {1,2,3,4,5,6};
                1 - 2 - 3
4 - 5 - 6
            int a[2][3] = {{1},{2,3}};
                1 - 0 - 0
2 - 3 - 0
            int a[][3] = { {1,2,3} , {4,5,6} };
                未定义行数 , 赋值后,自动认为行数为2
        程序设计举例
            P111  输入一个 2x3的矩阵 , 转置后形成 3x2的矩阵输出
            输入一个 3行6列的实型数组, 求出所有元素的平均值 , 用原来的数除以平均值替代原来的值 , 最后按行列格式 输出修改后的数组
            输入10个学生的学号(整数)  和 3门课的成绩(整数) , 统计并输出 3门课总分最高的学生的学号和总分(整数)
    字符数组 / 字符串
        字符数组
            char s[3] = {'a','b'}
            输出图案
                
                    我艹 , 这算什么例子 , 书上直接把这些值存到一个二维数组中,然后直接输出
这他妈谁不会
                        
                        我他妈还折腾这个近两个小时 , 艹你妈个B
            输入一串字符 , 不多于40个 , 以回车做结束符 , 存入数组 , 把大写改成小写, 其他字符不变 , 然后逆向输出
                
                我也看到烫了
        字符串 与 字符数组
            char s[3] = {"12"}; //注意是双引号哦
                此时, s[0]==1 , s[1] ==2
            char s[25];
scanf( "%s" , s );  //不用写 &s 哦
                输入:  123   456
  s = "123"
输入: 123回车456
  s="123"
            char s[20] = {'1' , '2' , '\0' , '3' , '4'};
printf( "%s" , s );
                输出:  12
因为 \0 是格式输出 %s 的结束标记符
            从键盘上输入一个字符串 , 统计该字符串的长度
                字符数组的使用 , 这个必需会 , 太基础了
                scanf_s("%s",a,100)
                如果输入 Hello world , 输出空格前的, 计数为5
                如何不把空格当结束?
            输入一个字符串 , 存入字符数组 s1 , 把 s1 中字符串复制到字符数组 s2 中
            从键盘上输入两个字符串 , 比较他们的大小
                scanf_s("%s%s", a, 100,b,100);
        字符串处理函数
            函数
                字符串输出函数
                    puts()
                        字符串结束符 , 转换为回车
                    printf();
                        字符串结束符 , 不输出
                字符串输入函数
                    gets()
                        只认为回车才是结束 , 空格属于字符串一部分
                    scanf();
                        回车/空格都会结束输入
                测试字符串长度
                    strlen(s);
                字符串复制函数
                    strcpy(字符数组, 字符串, 整型表达式)
                        strcpy(a,b,3) 把b的前3个字符复制到a
                字符串比较
                    strcmp( s1, s2 )
                        S1<S2  返回值小于0
                        S1 = S2  返回值 == 0
                        S1 > S2  返回值 > 0
                字符串连接函数
                    strcat(字符数组, 字符串);
                        strcat(a,b) 把b连接到a的最后一个有效字符后面(有效字符不含空格),保存到a
            举例
                输入一个字符串(可以有空格, 长度<40)
存入数组 a
将其复制到数组b
再将a中字符串连接到b后
比较并输出 a,b中字符串的大小
统计并输出 a, b 中字符串的长度
最后, 输出a, b 中的字符串
P121
                    注意 include <string.h>
                    strcat_s()
                    strcpy_s()
                输入 3 个字符串(可以有空格) , 输出其中最大者 P122
                    有空格 不会比啊,之前都是没空格的, 空格怎么算?
                    strcmp能比这种的吗?
                        答案是可以
                    字符串有空格, 使用 gets() 获取就可以, ~!~ 新技能 gets~
        字符数组程序设计举例
            输入一个字符串存入数组 a
对 a 中每个字符用 +3 的方法加密 , 并存入数组b
对b 中的字符解密 , 存入数组c
最后依次输出 a, b, c  的字符串
            输入一个字符串,存到s
寻找并输出其中最大字符, 最小字符 , 和他们的差值
                字符串还能算差值?
                是要求最大字符与最小字符的差值啊
            输入两个字符串a, b , 判断字符串b是否是字符串a 的子串
是, 则输出字符串b 在字符串a中的开始位置(从1始)
否, 则输出"不是子串"

如"ABCDEF" 子串 "CD" 的位置是3
            输入4个长度小于80的字符串 , 存入二维数组中.对其进行升序排序 , 并按次序输出
                对每个字符串里的字符进行升序排列
                对这4个字符串进行升序排列
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 我已经忘记了距离我上次写文章有多久的时间了,就像我忘记了上一次被问到最喜欢的季节是什么季节我回答的是冬季一样。 大...
    benvirus阅读 329评论 0 0
  • 四:和小美人在一起的第N天 巍巍未央>丝绸之路>生活区 【主题帖:和小美人在一起的第N天(小护士の私人树洞记录)】...
    朝笙浮塔阅读 2,201评论 0 0
  • 开心的一天,早上7点起床,因为约好俞总早上8点30给他打电话见面,奇妙的感觉,从来没有早上约见面的,还记得3年前俞...
    肖博文阅读 211评论 1 1
  • Text/田田圈文创工作群;Photo/台湾创意设计中心 如果要思考国家竞争力、创新及设计产值,与台湾相似性高的欧...
    破点阅读 1,646评论 0 3
  • 作者:沪江网校 【Alison带你说英语】又和大家见面啦~~这可是Alison为我们班量身订做的一档新概念英语口语...
    沪江中小幼阅读 437评论 0 0