嵌入式7-17第二节

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<windows.h>
#include<time.h>
#include<string.h>

//有序数组查找具体的数
//折半查找 (二分查找)


//int main()
//{
//    int arr[10] = { 1,2,3,4,5,6,7,8,9,10};
//    int k = 7;
//    int sz = sizeof(arr) / sizeof(arr[0]);//10个数
//    int left = 0;
//    int right = sz - 1; //10个数最右边的数是sz-1=9
//
//    while(left<=right) //条件
//    { ///循环体 一次查不到,就折半第二次
//        int mid = (left + right) / 2;  //指针的定位
//        //避免数字过大写法 溢出
//        int mid = left + ((right - left) / 2);
//
//        if (arr[mid] < k)
//        {
//            left = mid + 1;
//        }
//        else if (arr[mid] > k)
//        {
//            right = mid - 1;
//        }
//        else
//        {
//            printf("找到了,下标是%d\n",mid);
//            break;
//        }
//    }
//    if (left > right)
//    {
//        printf("找不到\n");
//    }
//    return 0;
//}

//strlen 与sizeof求 数组大小的区别
//int right = strlen(arr2) - 1; //int right =sizeof(arr1)/sizeof(arr1[0])-2;
//例子
//char buf[]="abc";
//[a b c \0]
//这里strlen只会计算 \0 之前的个数,sizeof则是会算入 \0 4个 定位到c的下标是2,所以要减2


//打印两头向中间逐字显示

//#include<stdlib.h>
//int main()
//{
//    char arr1[] =  "welcome to bite!!!!";
//    char arr2[] =  "###################";
//
//    int left = 0;
//    int right = strlen(arr2)-1;//int right =sizeof(arr1)/sizeof(arr1[0])-2;
//    
//    while (left <= right)
//    {
//        arr2[left] = arr1[left];
//        arr2[right] = arr1[right];
//        printf("%s\n", arr2);
//
//
//        Sleep(1000); //#打印速度对应的头文件include<windows.h>
//
//        //清空屏幕 使他只在一行上打印
//        system("cls"); //sysytem是一个库函数,可以执行系统命令
//
//        left++;
//        right--;
//
//    }
//    printf("%s\n", arr2);
//    return 0;
// }
//


//输入3次登录效果

//if (strcmp(password, "abcdef") == 0)  // 比较2个字符串是否相等,不能使用 == ,而应该使用一个库函数:strcmp
//strcmp函数 返回值是0,表示两个字符串相等


//#include<string.h>
//int main()
//{
//
//    int i = 0;
//    char password[20] = { 0 };
//    for (i = 0; i < 3; i++)
//    {
//        printf("请输入密码:>");
//        scanf("%s", password);///不需要加个 & ,数组本身是地址
//        if (strcmp(password, "abcdef") == 0)  // 比较2个字符串是否相等,不能使用 == ,而应该使用一个库函数:strcmp
//        {
//            printf("登录成功\n");
//            break;
//        }
//        else
//        {
//            printf("密码错误\n");
//        }
//    }
//    if (i == 3)
//    {
//        printf("三次都错误,登录失败\n");
//    }
//    
//    return 0;
//}

//猜数字游戏 电脑随机生成(1-100)
//猜大了
//猜小了

//void meun()
//{
//    printf("*************************\n");
//    printf("********  1.play  *******\n");
//    printf("********  0.exit  *******\n");
//}
//
rand的范围 0--rand_max(32767)
//
//void game()
//{
//    int guess = 0;
//    //1.生成随机数
//    int ret=rand()%100+1;///rand 函数是生成随机数的函数
//    //加个 %模100,余数嘛,余数范围就变成了就是0-99 加个1 1-100
//    /*printf("%d\n", ret);*/
//    
//    //2.猜数字
//    while (1)
//    {
//        printf("请猜数字:>");
//        scanf("%d", &guess);
//        if (guess < ret)
//        {
//            printf("猜小了\n");
//        }
//        else if (guess > ret)
//        {
//            printf("猜大了\n");
//        }
//        else
//        {
//            printf("猜对了\n");
//            break;
//        }
//    }
//}
//
//
指针变量
int a=0
int *p=null 指针得初始化
//
//int main()
//{
//    //time函数 返回一个时间戳
//    //time _t time(*p) 里面是指针 ,也可以空指针time(null )
//    //time _t 是一个返回值类型
//    //srand是一个unsigned 类型 强制转换类型(unsigned int)
//    srand((unsigned int)time(NULL)); //每次调用就会重新执行这个srand函数,所以每次都会重新生成一个起点,就是这个意思
//    //放在主函数里就不会被调用重复生成
//    //调用rand函数之前得先调用srand来设置
//    int input = 0;
//    do 
//    {
//        meun();
//        printf("请选择:");
//        scanf("%d", &input);
//        switch (input)
//        {
//        case 1:
//            game();//猜数字游戏
//            break;
//        case 0:
//            printf("退出游戏\n");
//            break;
//        default: //选择了其他数
//            printf("选择错误,重新选择\n");
//            break;
//        }
//    } while (input);
//
//    return 0;
//}

//goto语句
//一般不用goto
//goto语句最适合的场景

//for(...){
//    for (...)
//    {
//    }
//        for (...)
//            {
//            if (disater)
//                goto error;
//        }

//关机程序
//1.电脑运行起来后,一分钟内关机
//2.如果输入:我是猪,就取消关机


//int main()
//{
//    char input[20] = { 0 };
//    //system 是系统函数 调用cmd差不多
//    system("shutdown -s -t 60");
//
//again:
//    printf("请注意,你的电脑在60s后关机,如果输入:我是猪,就取消关机");
//    scanf("%s", input);
//    if (strcmp(input, "我是猪") == 0) //;两个字符判断相等用strcmp函数
//    {
//        system("shutdown -a");
//    }
//    else
//    {
//        goto again;
//    }
//    return 0;
//}


//函数库的学习
//网站https://cplusplus.com/reference/cstring/strcpy/


//strcpy 从一个数组copy到另一个数组
//memset  替换

//int main()
//{
    //strcpy 从一个数组copy到另一个数组
    //char arr1[20] = { 0 };
    //char arr2[] = {"hello bite"};
    //strcpy(arr1, arr2);//函数的形式strcpy(目的地,源头)
    //printf("%s\n", arr1);//hello bite    
    //
    //memset  替换 
    //char arr[20] = "hello world";
    //memset(arr, 'x', 5);//memst(替换位置,替换内容,替换数量)
    //printf("%s\n", arr); //xxxxx world 替换差不多
    //
    //
    //    return 0;
    //}


//函数的基本结构


//函数的定义
// int get_max(int x, int y)
//{
//    return(x > y ? x : y);//比较谁是最大值
//}
//
//
//int main()
//{
//    int a = 0;
//    int b = 0;
//    scanf("%d %d", &a, &b);
//    //求最大值
//    //函数的调用
//    int m = get_max(a, b);
//    printf("%d\n", m);
//    return 0;
//}

//参数交换
//当实参传递给形式参数的时候,形参是实参的一份临时拷贝
//对形参的修改不会影响实参

//void Swap(int *px, int *py)
//{
//    int z = *px;
//    * px = *py;
//    * py = z;
//
//}
//
//
//int main()
//{
//    int a = 0;
//    int b = 0;
//    scanf("%d %d", &a, &b);
//    //交换
//    printf("交换前:a=%d b=%d\n", a, b);
//    //a和b是实参
//    //Swap(a, b);//这样实现不了
//    Swap(&a, &b);//把地址传过去 指针的意义
//    printf("交换后:a=%d b=%d\n", a, b);
//    return 0;
//}


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值