分享一些练习题和大致解题思路(C语言)

分享的题基本都是各大网站,或者丛书中出的比较优秀的题,或者是博主看到的写过的一些题,由于博主也是一位刚入门的萌新,水平有限,现在可能不会出什么非常难的题,但是对于初入c语言的学员应该会有些帮助,好的现在开始(答案会放在另一个分组中,答案会是博主自己手打的,可能会有错误或者更优解也非常欢迎探讨交流一番)


题目

  1. 有一个数组a,编写函数,求数组中前k个最小的数字

  2. 编写函数: 求数组中元素出现次数超过数组长度一半的数字,如{1,2,3,2,2,2,5,4,2}数字2 为超过数组长度一半的数字

  3. 输入一个整形数组,数组里有整数也有负数,数组中一个或连续的多个整数组成一个子数组,求所有子数组的和的最大值,要求时间复杂度为o(n),例如输入的数组为{1,-2,3,10,-4,7,2,-5},和最大的子数组为{3,10,-4,7,2},因此输出为盖子数组的和18


解题思路

  1. 可以使用快速排序的思想来实现,每一次快速排列出的数都是,这个数的左边小于这个数,这个数的右边大于这个数,要求找前k个最小的数字,那就是这个数的位置和k-1(因为是数组 位置要-1)相等即可,还不懂的可以看图理解

  2. 由于要求的数字长度超过数组的一半,可以使用第一题的思路,将最中间的数排列出来就一定是要求的数

  3. 可以定义两个变量,一个sum,另一个max,sum是求每一个数相加的和时都是放在sum上,max是每次相加之后出现的最大值,当连续相加出现负值,例如:1 -2 3 1+(-2)之后sum就为负数了,这时可以判断,当sum为负数时,将sum=0,意思就是前面的数就都不要了,从下一个数开始从新计数,对比一下

sum=1-2+3=1
而将sum置零则是:1-2=-1 sum=00+3=3

分享一下

如果对题目感兴趣可以看看前几期的题
第二期链接https://blog.csdn.net/Heart_of_collaps/article/details/100144257
第一期链接https://blog.csdn.net/Heart_of_collaps/article/details/100126802
每一期都会在其他分组中放上答案,如果写不出来,可以参考答案对照着来写

简单c语言练习题(第三期)相关推荐

  1. linux写一个10的阶乘,C语言练习题:求1到10的阶乘之和简单实例

    C语言练习题:求1到10的阶乘之和简单实例 C语言练习题:求1到10的阶乘之和简单实例 #include int factorial(int n) { if(0==n) return 1; if(1= ...

  2. 语言 提取列名_学习健明老师发布的R语言练习题的学习笔记(二)

    学习者:骆栢维 题目来源:生信基石之R语言 中级10 个题目:http://www.bio-info-trainee.com/3750.html 备注:本文为笔者学习健明老师GitHub答案代码的学习 ...

  3. go程序设计语言练习题

    来自 go程序设计语言 一书 源博客地址go程序设计语言练习题 练习题3.10 编写一个非递归的comma函数,运用bytes.Buffer,而不是简单的字符串拼接 package mainimpor ...

  4. C语言语句单选题,C语言练习题

    C语言练习题 C一个switch语句总是可以被一系列ifelse语句替换 D switch语句的测试表达式可以是任何类型 E当执行break语句时程序将停止执行 20在C语言中,在int num[5] ...

  5. c语言练习题及答案)(1),c语言练习题(带详解答案)1.pdf

    c语言练习题(带详解答案)1 (-2) -1: 一单项选择题 /为求商运算符,该运算符能够对整型.字符.浮点等类型的数 据进行运算,5/2 2 1.(A )是构成C语言程序的基本单位. 11.如果 i ...

  6. 循环数组函数c语言,C语言练习题2(分支结构循环结构数组函数2009-2012二级真题)..doc...

    C语言练习题2(分支结构循环结构数组函数2009-2012二级真题). C语言练习题(二) 一 选择题 1.有以下程序 #include void main() { int a: canf(" ...

  7. python简单编程-编程中最简单的语言Python,这样学或许更容易

    最近微信小程序上面出了一个跳一跳的小游戏 大家有没有玩呀? 编程中最简单的语言Python,这样学或许更容易 分享之前我还是要推荐下我自己建的Python开发学习群:628979297,群里都是学Py ...

  8. python入门练习题-Python简单新手入门练习题

    分享给Python新手们的几道简单练习题 前言 本文主要给大家分享了一些简单的Python练习题,对学习python的新手们来说是个不错的练习问题,下面话不多说了,来一起看看详细的介绍吧. 第一题:使 ...

  9. 用简单的语言描述C++ 是什么?

    用简单的语言描述C++ 是什么? 答:C++是在C语言的基础上开发的一种面向对象编程语言,应用广泛.C++支持多种编程范式 --面向对象编程.泛型编程和过程化编程. 其编程领域众广,常用于系统开发,引 ...

最新文章

  1. Java编程中,有哪些好的习惯从一开始就值得坚持?
  2. 开发日记-20190614 克服过去
  3. 第四篇[机器学习] 机器学习,线性回归的优化
  4. 特征检测器 FeatureDetector
  5. [BetterExplained]如何有效地记忆与学习
  6. 山东省能源产业项目动态及未来投资决策建议报告2021版
  7. Calling JNI Functions with Java Object Arguments from the Command Line
  8. 在《糖豆人》身上,我们看到了竞技游戏火爆的六大因素
  9. JS中的location.href
  10. 华为错误报告存储在哪里_守护你的数据,华为云数据安全中心正式公测
  11. 当一个GameObject有两个Collider组件时,Physics Material不起作用
  12. 科技通讯PSD分层海报出击!Hello 5G时代
  13. stm32单片机相同系列型号代码移植
  14. 数字化转型— 华为业务流程模型学习
  15. parallel scavenge 与parnew 区别:
  16. win10多任务处理快捷键
  17. 电脑一些基础知识(一)
  18. 高中数学教科书选修系列介绍
  19. 【web自动化测试】
  20. js对日期加减指定天、时、分、秒

热门文章

  1. Bugku_Web18_秋名山车神
  2. MEM/MBA数学基础(03)整式与分式 运算
  3. OpenGL播放yuv数据流(着色器SHADER)-IOS(一)
  4. 人工智能语言,我们的骄傲
  5. 马斯克宣布重磅消息!一切来得那么快!
  6. 【FFmpeg】没有平均fps,计算音视频 pkt duration
  7. cisco pkt 路由器配置基础及接口配置 路由协议与交换技术
  8. 云南计算机网络技术专业培训学院,云南哪些大学有计算机网络技术专业
  9. ps入门第9天_ps色阶ps曲线 案例:ps照片校正
  10. 地理模块化施工的优点_2019年高考地理微专题09秒解分析影响意义题