【C语言day06】

news2024/12/23 14:28:08

在这里插入图片描述
逻辑或运算如果前表达式为真,后表达式不计算,第一次循环时i为0,执行i++,第二次循环时i为1,是个真值,不再执行i++,也就死循环了


在C语言中,一个函数如果不写返回值类型,那么就默认为int类型


至少是其他数字两倍的最大数
题目来源
给你一个整数数组 nums ,其中总是存在 唯一的 一个最大整数 。请你找出数组中的最大元素并检查它是否 至少是数组中每个其他数字的两倍 。如果是,则返回 最大元素的下标 ,否则返回 -1

int dominantIndex(int* nums, int numsSize){
    //找到最大值元素
    int max = *(nums);
    int key = 0;
    int k = 0;
    for(k=0;k<numsSize;k++){
        if(*(nums+k)>=max){
            max = *(nums+k);
            key = k;
        }
    }
    
    //0 1 3 6
    //if 3*2<=6

    int i = 0;
    int j = 0;
    //冒泡排序
    for(i=0;i<(numsSize-1);i++){
        for(j=0;j<(numsSize-i-1);j++){
            if(*(nums+j)>*(nums+j+1)){
                int temp = *(nums+j);
                *(nums+j) = *(nums+j+1);
                *(nums+j+1) = temp; 
            }
        }
    }
    //排序之后
    //n-1 和 n-2
    if((*(nums+numsSize-2)*2)<=*(nums+numsSize-1)){
        return key; 
    }else{
        return -1;
    }
}
int dominantIndex(int* nums, int numsSize) {
    if (numsSize == 1) return 0;//特殊情况只有一个元素则特殊处理

    int max, sec, idx;
    //先对最大和次大进行选择赋值,注意max和sec不能随意赋初值,因为有可能你赋予的初值就是最大值
    //因此要使用数组中的数据进行初值赋予。
    //1 2 3 4
    if (nums[0] > nums[1]) {
        max = nums[0];
        idx = 0;
        sec = nums[1];
    }
    else {
        max = nums[1];
        idx = 1;
        sec = nums[0];
    }

    for (int i = 2; i < numsSize; i++) {
        if (nums[i] > max) { //当前元素大于max,则意味着要替换
            sec = max; //先将原先最大的保存到sec中,则他就是次大的
            max = nums[i]; //再将最大的放到max中
            idx = i; //保存max值的下标
        }
        else if (nums[i] > sec) {
            //避免刚好nums[0]就是最大的情况,因为不切换最大而导致次大无法判断情况
            sec = nums[i];
        }
    }
    if (max >= sec * 2) {
        return idx;
    }
    return -1;
}


int main() {
    //int nums[] = { 1,2,3,4 };
    //int nums[] = { 3,6,1,0 };
    //int nums[] = { 6,5,4,3 };
    int nums[] = { 6,2,4,1 };


    int numsSize = sizeof(nums) / sizeof(nums[0]);
    dominantIndex(nums,numsSize);
    return 0;
}

给定两个数组,编写一个函数来计算它们的交集。
题目来源

int* intersection(int* nums1, int nums1Size, int* nums2, int nums2Size, int* returnSize){
    // int arr[1000]; 错误

    // static int arr[1000];
    // int* arr = (int*)malloc(sizeof(int)*1000);
    int* arr = (int*)calloc(1000,sizeof(int));

    *returnSize = 0;
    
    int i, j, k;
    
    for (i = 0; i < nums1Size; i++) {
        // nums1 = [1,2,2,1], nums2 = [2,2]
        // 2
        for (j = 0; j < nums2Size; j++) {

            if (nums2[j] == nums1[i]) break;//判断nums1[i] 是否在nums2数组中

        } 
            
        if(j == nums2Size) {// nums1中i位置的数据在nums2数组中不存在,则非交集数据
            continue;
        } 
        
        //只有在另一个数组中存在的数据才能走下来,判断是否已经被添加到返回数组中
        
        for (j = 0; j < *returnSize; j++) {
            
            if (nums1[i] == arr[j]) break;//判断nums1[i] 是否在 arr 这个返回数组中
        
        } 
            
        if(j == *returnSize) {//不在返回数组中,则添加到返回数组中
            arr[*returnSize] = nums1[i];
            *returnSize += 1;
        }
    } 

    return arr;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/790851.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2023年深圳杯数学建模B题电子资源版权保护问题

2023年深圳杯数学建模 B题 电子资源版权保护问题 原题再现&#xff1a; 版权又称著作权&#xff0c;包括发表权、署名权、修改权、保护作品完整权、复制权、发行权、出租权、展览权、表演权、放映权、广播权、信息网络传播权、摄制权、改编权、翻译权、汇编权及应当由著作权人…

【Element-ui】学习与使用

网站快速成型工具Element&#xff0c;一套为开发者、设计师和产品经理准备的基于vue2.0的桌面端组件库 安装 npm i element-ui -S 在项目中安装element-ui&#xff0c;安装了以后查看package.json中的依赖中有没有element-ui的版本&#xff0c;如果有&#xff0c;则说明安装成功…

通过STM32内部ADC将烟雾传感器发送的信号值显示在OLED上

一.CubeMX配置 首先我们在CubeMX配置ADC1, 设置一个定时器TIM2定时1s采样一次以及刷新一次OLED&#xff0c; 打开IIC用于驱动OLED显示屏。 二.程序 在Keil5中添加好oled的显示库&#xff0c;以及用来显示的函数、初始化函数、清屏函数等。在主程序中初始化oled,并将其清屏。…

轻松学会 React 钩子:以 useEffect() 为例

一、React 的两套 API 以前&#xff0c;React API 只有一套&#xff0c;现在有两套&#xff1a;类&#xff08;class&#xff09;API 和基于函数的钩子&#xff08;hooks&#xff09; API。 任何一个组件&#xff0c;可以用类来写&#xff0c;也可以用钩子来写。下面是类的写法…

解密智能汽车云控基础平台网络架构

全球汽车产业正经历深度转型期&#xff0c;电动化、智能化、网联化成为该行业的主流趋势。随着技术的进步和人们对便利、智能出行的需求不断增加&#xff0c;智能汽车的市场前景广阔。 欲要了解智能汽车车联网&#xff0c;必先了解汽车智能化和网联化的管控中枢- 云控基础平台…

【C++】C++11---lambda表达式

目录 1、lambda表达式1&#xff09;什么是lambda表达式2&#xff09;lambda表达式语法3&#xff09;函数对象与lambda表达式 1、lambda表达式 1&#xff09;什么是lambda表达式 在C98中&#xff0c;如果想要对一个数据集合中的元素进行排序&#xff0c;可以使用std::sort方法…

算法竞赛入门【码蹄集新手村600题】(MT1040-1060)

算法竞赛入门【码蹄集新手村600题】(MT1040-1060&#xff09; 目录MT1041 求圆面积和周长MT1042 求矩形的面积和周长MT1043 椭圆计算MT1044 三角形面积MT1045 平行四边形MT1046 菱形MT1047 梯形MT1048 扇形面积MT1049 三角形坐标MT1050 空间三角形MT1051 四边形坐标MT1052 直角…

win10系统wps无法启动(打开文档)

我的win10系统中&#xff0c;之前可以顺畅地打开wps&#xff0c;但最近无法打开文档&#xff0c;停留在启动页面&#xff0c;在任务管理器中可以看到启动的wps线程&#xff0c;如果继续双击文档&#xff0c;线程增加&#xff0c;但依然无法打开文档。 wps版本是刚刚更新的15120…

【爬虫逆向案例】某名片网站 js 逆向 —— data解密

声明&#xff1a;本文只作学习研究&#xff0c;禁止用于非法用途&#xff0c;否则后果自负&#xff0c;如有侵权&#xff0c;请告知删除&#xff0c;谢谢&#xff01; 【爬虫逆向案例】某名片网站js逆向—— data解密 1、前言2、步骤3、号外 1、前言 相信各位小伙伴在写爬虫的…

免费的音频转换器带你突破音频格式束缚

曾经有一个名叫吴欢的音乐爱好者&#xff0c;他热爱收集各种音频文件&#xff0c;从经典的老歌到新潮的流行曲&#xff0c;样样都不放过。然而&#xff0c;他遇到了一个令人头疼的问题&#xff1a;因为音频格式的不同&#xff0c;他无法将一些珍贵的音乐记录转化为文字形式。他…

[ELK使用篇]:SpringCloud整合ELK服务

文章目录 一&#xff1a;前置准备-(参考之前博客)&#xff1a;1.1&#xff1a;准备Elasticsearch和Kibana环境&#xff1a;1.1.1&#xff1a;地址&#xff1a;[https://blog.csdn.net/Abraxs/article/details/128517777](https://blog.csdn.net/Abraxs/article/details/1285177…

Python 教程:面向对象详解

目录&#xff1a; 面向对象 面向对象技术简介 类定义 类对象 self 代表类的实列&#xff0c;而非类 类的方法 继承 多继承 方法重写 类属性与方法 类的私有属性 类的方法 类的私有方法 运算符重载 概要 Python从设计之初就已经是一门面向对象的语言&#xff0c;正因…

小米手机开启智能设备的OTA升级方法

支持的手机列表 手机 市场名称 版本 1 L18-SD8475 小米MIX FOLD 2 / 2 L1-SD8475 小米MIX5 Pro / 3 L2-SD8450 小米12 Pro 13.0.30|稳定版 4 L2S-SD8475 小米12S Pro / 5 L3-SD8450 小米12 6 L3A-SD8250AC 小米12X 13.22.4.7|开发版 7 K8-SD8350A…

C语言float类型学习

C语言的小数类型有两种&#xff0c;float和double&#xff1b; float 称为单精度浮点型&#xff0c;double 称为双精度浮点型&#xff1b; float 占用4个字节&#xff0c;double 占用8个字节&#xff1b; 下面看一下float&#xff1b; #include <stdio.h>int main() {…

深入学习Arduino_JSON库

忘记过去&#xff0c;超越自己 ❤️ 博客主页 单片机菜鸟哥&#xff0c;一个野生非专业硬件IOT爱好者 ❤️❤️ 本篇创建记录 2023-07-26 ❤️❤️ 本篇更新记录 2023-07-26 ❤️&#x1f389; 欢迎关注 &#x1f50e;点赞 &#x1f44d;收藏 ⭐️留言&#x1f4dd;&#x1f64…

闲置宽带的用处你知道吗

随着我们生活水平的提高以及国家对信息化建设的推动&#xff0c;大部分家庭的宽带已经进入了高速时代&#xff0c;100-200M到处可见&#xff0c;甚至于500M也不是什么新鲜事儿了&#xff0c;宽带的速率是提高了&#xff0c;不过问题也来了&#xff0c;你家的宽带是否物尽所用&a…

干货分享 | TSMaster图形模块功能详解(一)—— 以CAN信号为例

“ 本文目录&#xff1a; 1、信号的导入与删除 1.1 CAN信号的导入 1.2 添加系统变量 1.3 自定义信号 1.4 信号的删除 1.5 清除信号数据 2、图形分栏 2.1 添加分栏 2.2 平均分配分栏高度 2.3 分栏上移与下移 2.4 删除分栏 3、暂停与启动和禁止图形 4、高亮信号相关操…

uview中的常用的框

第一步&#xff1a; 先下载 uview UI 框架 详见 项目 引入 uView_vue引入uview_qq_2524963996的博客-CSDN博客【代码】 项目 引入 uView。_vue引入uviewhttps://blog.csdn.net/qq_44161703/article/details/131168976?spm1001.2014.3001.5501 第二步&#xff1a; 可以直接…

mongodb mongoose 数据库增删改查基本操作

mongodb 5.0.19 下载 下载地址 安装到 C:\Program Files c盘新建 C:\data\db 找到 bin 目录(C:\Program Files\mongodb-windows-x86_64-5.0.19\mongodb-win32-x86_64-windows-5.0.19\bin) 打开cmd 输入 mongod 命令 启动数据库 再打开一个 cmd 窗口执行 mongo 命令&am…