首页 > 其他分享 >奋斗百天我要xueC--02

奋斗百天我要xueC--02

时间:2023-02-02 22:34:18浏览次数:42  
标签:02 nums -- str1 char xueC int 数组 字符串

0x00

0x01 小数

十进制形式
指数形式 aEn
长度固定float 4字节,double 8字节
%f %lf %e %le 默认保留六位小数

%g 输出结果简练

char 字符 长度1

变量存储字符串
char strs[]="一串字符串"
char *str2 = "另一串字符串"

下节预告c语言输入输出
输出
printf("%s",str)、puts(str)、pchar
输入
scanf(遇到空格结束)、gets(能读取空格)、getchar、(getche、getch(conio.h,不回显)没有缓冲区,直接输出)
在scanf("%s",str) 读入数据时,同样需要&,只是字符串或者数组,本身就代表者地址,故不需要多加。

0x02 循环结构与选择结构

if(){
}
else if(){
}
else{
}

优先级,算数>关系>逻辑>赋值

switch(表达式){
  case 整型数值1:语句1;
  case 整型数值2:语句2;
  default:语句n+1;
}

while(){
  语句块
}

for(表达式1;表达式2;表达式3){
  语句块
}

0x03 数组

int a[4]
scanf("%d",&a[i])
// 数组初始化 int a[4] = {1,2,3,4}
数组在初始化时,会将未赋值的值归0.
二维数组初始化 int a[3][2] = {{1,2},{3,4},{5,6}} = int[][2]
// 有序数组查询

    for(i=0; i<10; i++){
        if(nums[i] == num){
            thisindex = i;
            break;
        }else if(nums[i] > num){
            break;
        }
    }

C语言没有专门的字符串变量(就是int char),也没有string类型(java),通常用字符串数组存放字符串。-》(char a[])
注意,只有在初始化的时候才能一大串的赋值给数组。char a[] = "ABC I wanna to it" // 正确(再次赋值就只能一个一个来。)
字符串的结尾始终是'\0','\0'在ascii中是第0个字符 -》 NUL
没有'\0' 程序无法标记字符串的结束位置,会将后面的程序也当作字符串。

注意:局部数据的初始值是随机数,不是0

当未给字符串数组后面的数赋值,可能导致字符串停不下来,(不是0),将导致读入更多的数30大小硬是读入50个。
所以,手动赋0就可以解决,a[i] = 0 但是,最好的方法是初始化时, 将数组所有值初始化为0 a[30] = {0}

字符串的长度

#include<string.h> strlen(str)

字符串的一些函数的使用

strcat(str1,str2),字符串拼接,删除str1后面的'\0'
strcpy(str1,str2),str2 覆盖str1
strcmp(str1,str2) ,字符串比较,相同返回0,str1大,返回大于0的数,小则返回小于0的数。

冒泡排序数组

// 正常写法
    int nums[10] = {4, 5, 2, 10, 7, 1, 8, 3, 6, 9};
    int i, j, temp;
    //冒泡排序算法:进行 n-1 轮比较
    for(i=0; i<10-1; i++){
        //每一轮比较前 n-1-i 个,也就是说,已经排序好的最后 i 个不用比较
        for(j=0; j<10-1-i; j++){
            if(nums[j] > nums[j+1]){
                temp = nums[j];
                nums[j] = nums[j+1];
                nums[j+1] = temp;
            }
        }
    }
// 优化
    //优化算法:最多进行 n-1 轮比较
    for(i=0; i<10-1; i++){
        isSorted = 1;  //假设剩下的元素已经排序好了
        for(j=0; j<10-1-i; j++){
            if(nums[j] > nums[j+1]){
                temp = nums[j];
                nums[j] = nums[j+1];
                nums[j+1] = temp;
                isSorted = 0;  //一旦需要交换数组元素,就说明剩下的元素没有排序好
            }
        }
        if(isSorted) break; //如果没有发生交换,说明剩下的元素已经排序好了
    }

待补充

快速排序算法及代码
选择排序
插入排序
合并排序(归并排序)
顺序查找
二分查找(折半查找)

标签:02,nums,--,str1,char,xueC,int,数组,字符串
From: https://www.cnblogs.com/cmview/p/16994686.html

相关文章

  • (0)语文
    思想:共情与观点表达不必去强记各种题型的解题模板而是试图在共情的基础上去理解答案组织的内在逻辑当你在阅读过程中尝试去理解作者,渐渐沉浸在文章中,以至于和作者产生共......
  • Qt Creator9.0生成工程后没有.pro文件
    QtCreator9.0默认建立的widget项目只有CMakeLists.txt文件,没有pro文件发现生成工程文件时默认选择的是cmake,不是qmake导致的这个问题,将Builldsystem中转化成qmake之后......
  • E900V21C
    固件下载:https://www.znds.com/rom/19943.html线刷工具下载:http://cdn.tvapk.com/zndsjc/burning_tool_v2.0.5.15-build9.zip之前也看了关于E900V21C的刷机帖子以及不刷......
  • 待解决和深究问题
    1.关于heightForRow方法,动态展现高度问题,待解决答:已解决,在开发经验中。2.关于label在autolayout中的适配问题[self.mailAddressCell.contentViewsystemLayoutSizeFittingSi......
  • xib起冲突 StartTag: invalid element name
    <欢迎大家加入iOS开发学习交流群:QQ529560119>首先要表明下心态,代码已经推到到了项目分支,跑步起来xib点不开,双击就报错line:XX StartTag:invalidelementname,感觉真的挂了......
  • iOS打IPA包
    <欢迎大家加入iOS开发学习交流群:QQ529560119>1.点击工程Project2.设置自己App的证书[记得这里是设置Target的证书,而不是Project的证书]3.点击Project->Edit-Scheme设置一下......
  • 详解 CALayer 和 UIView 的区别和联系
    前言前面发了一篇iOS面试的文章,在说到UIView和CALayer的区别和联系的时候,被喵神指出没有切中要点,所以这里就CALayer和UIView这个问题重新整理了下。这里会先分条......
  • sourceTree拉取远程代码之后报错,说此文件已经删除怎么解决
    问题描述:在当B拉取远程分支之后,sourcetree会报错,出现红色(好像也是灰色的)文件,说这两个已经删除。[又或者是xcode报错文件不存在被删除了]。问题产生过程:作者A在xcode左边工程目......
  • 华为FusionSphere OpenStack标签有大作用,你用对了吗?
    FusionSphere的标签有两处设置的地方,一个是主机组标签,一个是规格标签,这两个标签配置均在FusionSphereOpenStackOM上进行配置。标签与虚拟机能发放的位置、热迁移和重建的......
  • 今日学习
    /*intmain(){//a++前置++ -->先++后使用,先自增后赋值 inta=10; intb=a++; printf("%d\n",a); printf("%d\n",b); return0;}*//*intmain(){//强制......