当前位置: 首页 > news >正文

C语言练习02-数组

一、求最值

已知数组元素为{33,5,22,44,55},找出数组中的最大值并打印在控制台

#include<stdio.h>
#include<math.h>int main()
{int arr[] = {33,5,22,44,55};int max = arr[0];int len = sizeof(arr) / sizeof(int); //注意:sizeof(arr)计算的是数组所占内存空间的总大小//计算数组长度时,应该用数组所占内存空间总大小除以数组类型的内存//比如:sizeof(arr)/sizeof(int)for(int i = 0; i < len; i++){if(arr[i] > max){max = arr[i];}}printf("%d\n",max);return 0;
}

二、数组求和

生成10个1~100之间的随机数存入数组,要求数据不能重复

1)求出所有数据的和

2)求所有数据的平均数

3)统计有多少个数据比平均值小

#include<stdio.h>
#include<math.h>
#include<stdlib.h>
#include<time.h>int main()
{int arr[10] = {0};int i = 0;int sum = 0;int num = 0;int Num = 0;srand((unsigned int) time(NULL));//存入数据for(i = 0; i < 10; i++){int ret = rand() % 100 + 1;arr[i] = ret;}//打印数据for(int j = 0;j < 10;j++){printf("%d ",arr[j]);}printf("\n");//求和for(int j = 0;j < 10;j++){sum = sum + arr[j];}printf("和为%d ",sum);//求平均数num = sum / 10;printf("平均数等于%d",num);return 0;//统计for(int j = 0;j < 10;j++){if(arr[j] < num){Num++;}}printf("有%d个数比平均数小",Num);
}

三、反转数组

#include<stdio.h>
#include<math.h>
#include<stdlib.h>
#include<time.h>int main()
{int arr[] = {2,4,6,8};int len = sizeof(arr)/sizeof(int);for(int i = len - 1;i >= 0;i--){printf("%d ",arr[i]);}return 0;
}

四、打乱数组中数据的顺序

#include<stdio.h>
#include<math.h>
#include<stdlib.h>
#include<time.h>int main()
{int arr[] = {2,4,6,8};int len = sizeof(arr)/sizeof(int);srand(time(NULL));int ret = rand() % len;for(int i = 0;i < len;i++){int temp = arr[i];arr[i] = arr[ret];arr[ret] = temp;}for(int i = 0;i < len;i++){printf("%d ",arr[i]);}return 0;
}

五、数组常见算法1-基本查找/顺序查找

#include<stdio.h>
#include<math.h>
#include<stdlib.h>
#include<time.h>int main()
{//查找8,若存在则返回其索引值,若不存在,则返回-1int arr[] = {2,4,6,8,10};int len = sizeof(arr)/sizeof(int);for(int i = 0;i < len;i++){if(arr[i] == 8){printf("%d",i);}}return -1;
}

六、数组常见算法2-二分查找

前提:数据必须按顺序排列

#include<stdio.h>
#include<math.h>
#include<stdlib.h>
#include<time.h>int BinarySearch(int arr[],int num)
{int min = 0;int len = sizeof(arr) / sizeof(arr[0]);int max = len - 1;int mid = (min + max) / 2;while(true){if(min > max){return -1;}//如果数字在mid的左边,则舍弃右边数字,max变为mid-1if(num < arr[mid]){max = mid - 1;}//如果数字在mid的右边,则舍弃左边数字,min变为mid+1if(num > arr[mid]){min = mid + 1;}//如果num和mid索引上的数字相同,则返回midif(num == arr[mid]){return mid;}}}int main()
{int arr[] = {2,4,6,8,10};int num = 8;printf("%d",BinarySearch(arr,num));}

七、冒泡排序法

#include<stdio.h>
#include<math.h>
#include<stdlib.h>
#include<time.h>int main()
{int arr[] = {7,4,9,3,5,1};int len = sizeof(arr) / sizeof(int);for(int i = 0;i < len - 1;i++){for(int j = 0;j < len - 1 - i;j++){if(arr[j] > arr[j+1]){int temp = arr[j];arr[j] = arr[j+1];arr[j+1] = temp;}}}for(int i = 0;i < len;i++){printf("%d ",arr[i]);}}

相关文章:

  • 零信任介绍
  • k8s 小技巧: 查看 Pod 上运行的容器
  • windows常见问题
  • Python重力弹弓流体晃动微分方程模型和交直流电阻电容电路
  • ubuntu开机怎么进入、退出命令行界面
  • 高效BUG管理:定级、分类和处理流程
  • 【SQL】drop、delete 与 truncate 的区别
  • Excel中插入的图片在不同电脑上消失的问题及解决方法
  • 裁员裁到大动脉,是一种什么体验!
  • Spring (68)如何管理Spring Boot应用的配置
  • 【云岚到家】-day04-1-数据同步方案-Canal-MQ
  • 【C++题解】1713 - 输出满足条件的整数3
  • IP地址介绍
  • java 接口的
  • Hi3861 OpenHarmony嵌入式应用入门--总引导连接
  • 《深入 React 技术栈》
  • 【vuex入门系列02】mutation接收单个参数和多个参数
  • 【译】React性能工程(下) -- 深入研究React性能调试
  • 4个实用的微服务测试策略
  • Babel配置的不完全指南
  • CentOS从零开始部署Nodejs项目
  • download使用浅析
  • gf框架之分页模块(五) - 自定义分页
  • Js基础——数据类型之Null和Undefined
  • Netty源码解析1-Buffer
  • ⭐ Unity 开发bug —— 打包后shader失效或者bug (我这里用Shader做两张图片的合并发现了问题)
  • 短视频宝贝=慢?阿里巴巴工程师这样秒开短视频
  • 给初学者:JavaScript 中数组操作注意点
  • 关于Flux,Vuex,Redux的思考
  • 前端路由实现-history
  • 思维导图—你不知道的JavaScript中卷
  • ​Distil-Whisper:比Whisper快6倍,体积小50%的语音识别模型
  • ​什么是bug?bug的源头在哪里?
  • # Swust 12th acm 邀请赛# [ E ] 01 String [题解]
  • # 学号 2017-2018-20172309 《程序设计与数据结构》实验三报告
  • #HarmonyOS:软件安装window和mac预览Hello World
  • #控制台大学课堂点名问题_课堂随机点名
  • ()、[]、{}、(())、[[]]等各种括号的使用
  • (2)从源码角度聊聊Jetpack Navigator的工作流程
  • (9)YOLO-Pose:使用对象关键点相似性损失增强多人姿态估计的增强版YOLO
  • (iPhone/iPad开发)在UIWebView中自定义菜单栏
  • (动手学习深度学习)第13章 计算机视觉---微调
  • (读书笔记)Javascript高级程序设计---ECMAScript基础
  • (二)pulsar安装在独立的docker中,python测试
  • (二十九)STL map容器(映射)与STL pair容器(值对)
  • (附源码)spring boot车辆管理系统 毕业设计 031034
  • (佳作)两轮平衡小车(原理图、PCB、程序源码、BOM等)
  • (力扣记录)1448. 统计二叉树中好节点的数目
  • (每日持续更新)jdk api之FileFilter基础、应用、实战
  • (七)理解angular中的module和injector,即依赖注入
  • (三分钟)速览传统边缘检测算子
  • (万字长文)Spring的核心知识尽揽其中
  • (一)Mocha源码阅读: 项目结构及命令行启动
  • (一)VirtualBox安装增强功能
  • (转)Windows2003安全设置/维护