C语言练习---1

复制代码
#define _CRT_SECURE_NO_WARNINGS 1

#include<stdio.h>
#include<limits.h>
#include<stdlib.h>//system
#include<string.h>//strcmp

int main()
{
    int a = 3;
    int b = 5;
    int c = 0;
    printf("交换前: a=%d b=%d\n", a, b);

    c = a;
    a = b;
    b = c;
    printf("交换后: a=%d b=%d\n", a, b);
    return 0;
}


//只使用两个变量
int main()
{
    int a = 3;
    int b = 5;
    int c = 0;
    printf("交换前: a=%d b=%d\n", a, b);
    //INT_MAX; 2147483647
    //溢出的问题
    //int - 4个字节 - 32bit位 - 最大值
    a = a + b;//a - 和, b还是原来的b
    b = a - b;//b得到原来的a
    a = a - b;//得到的是原来的b

    printf("交换后: a=%d b=%d\n", a, b);
    return 0;
}


int main()
{
    int a = 3;
    int b = 5;
    int c = 0;
    printf("交换前: a=%d b=%d\n", a, b);
    //^ 按(二进制)位异或
    //相同为0,相异为1
    //不会溢出
    //没有使用第三个变量
    a = a ^ b;
    b = a ^ b;
    a = a ^ b;

    printf("交换后: a=%d b=%d\n", a, b);
    return 0;
}



int main()
{
    int arr[] = { 1,2,3,4,5,1,2,3,4 };
    //找出单生狗
    int i = 0;
    int sz = sizeof(arr) / sizeof(arr[0]);//计算数组的元素个数
    for (i = 0; i < sz; i++)
    {
        //统计arr[i]在arr数组中出现了几次;
        int count = 0;
        int j = 0;
        for (j = 0; j < sz; j++)
        {
            if(arr[i] == arr[j])
            {
                count++;
            }
        }
        if (count == 1)
        {
            printf("单生狗:%d\n", arr[i]);
            break;
        }
    }
    return 0;
}

//优化算法
//异或是满足交换律的
int main()
{
    int arr[] = { 1,2,3,4,5,1,2,3,4 };
    int i = 0;
    int ret = 0;
    int sz = sizeof(arr) / sizeof(arr[0]);
    for (i = 0; i < sz; i++)
    {
        ret = ret ^ arr[i];
    }
    printf("单生狗:%d\n", ret);
    return 0;
}

int main()
{
    char input[20] = { 0 };//存储数据
    //关机
    //system() - 专门用来执行系统命令的
    system("shutdown -s -t 60");//关机
    again:
    printf("请注意,你的电脑在1分钟内关机,如果输入:我是猪,就取消关机\n");
    scanf("%s", input);//%s - 字符串
    if (strcmp(input, "我是猪") == 0)//判断input中放的是不是“我是猪” - strcmp - string compare
    {
        system("shutdowm -a");
    }
    else
    {
        goto again;
    }
        return 0;
}
复制代码

 

posted @   JimJZY  阅读(67)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· Vue3状态管理终极指南:Pinia保姆级教程
点击右上角即可分享
微信分享提示