嵌入式初学-C语言-练习四

news2024/11/15 23:01:19

一维数组练习题

1.键盘录入一组数列,利用冒泡排序将数据由大到小排序

代码:

  1 /*
  2   需求:一维数组案例-冒泡排序
  3 */
  4 #include <stdio.h>
  5 
  6 int main()
  7 {
  8     //创建一个数组,用来存储排序的数列
  9     int arr[10];
 10     int i,j,t;  //i:比较轮数,j:每一轮比较的次数,t:临时变量,用来比较时交换数据
 11 
 12     printf("请输入10个测试整数:\n");
 13 
 14     //计算数组大小
 15     int length = sizeof(arr) / sizeof(int); //等价于sizeof[0]
 16 
 17     //通过循环录入数据
 18     for(i = 0;i < length;i++)
 19     {
 20         scanf("%d,",&arr[i]);
 21     }
 22 
 23     printf("\n");
 24 
 25     //对数组arr使用冒泡排序法进行排序(使用的标准冒泡排序法)
 26 
 27     //外层循环:控制比较的轮数,因为有10个数,所以需要比较length-1轮
 28     for(i = 0;i < length-1;i++)
 29     {
 30         //内层循环:每一轮中比较的次数,每一轮比较的次数为length - 1 - i
 31         for(j = 0;j < length - 1 - i;j++)
 32         {
 33             //相邻的两个数进行比较,满足条件交换位置
 34             if(arr[j] < arr[j + 1])
 35             {
 36                 t = arr[j];
 37                 arr[j] = arr[j + 1];
 38                 arr[j + 1] = t;
 39             }
 40         }
 41     }
 42 
 43     printf("冒泡排序后遍历数组:\n");
 44 
 45     for(i = 0;i < length;i++)
 46     {
 47         printf("%4d",arr[i]);
 48     }
 49 
 50     printf("\n");
 51 
 52     return 0;
 53 }
 54 

结果:

2.从键盘输入年、月、日,计算并输出该日是该年第几天

代码:

  1 /*
  2   需求:一维数组案例-从键盘输入年/月/日,计算并输出该日是该年的第几天
  3 */
  4 #include <stdio.h>
  5 
  6 int main()
  7 {
  8     //定义变量:年,月,日,统计天数,循环变量,用来遍历当前月前面的月份
  9     int year,month,day,sum,k;
 10     //定义一个数组,用来存放1~12月每月的天数
 11     int t[] = {31,0,31,30,31,30,31,31,30,31,30,31}; //柔性数组
 12 
 13     printf("请输入年份月份和哪天:\n");
 14 
 15     scanf("%d%d%d",&year,&month,&day);
 16 
 17     //因为二月比较特殊存在29和28天,所以需要进行平年润年判断
 18     if(year % 4 == 0 && year % 100 != 0 || year % 400 ==0)
 19     {
 20         t[1] = 29; //润年2月29天
 21     }
 22     else
 23     {
 24         t[1] = 28; //平年2月28天
 25     }
 26 
 27     sum = day;  //默认记录最后一个月的天数
 28 
 29     //这是该年的第几天
 30     for(k = 0;k < month - 1;k++)
 31     {
 32         sum += t[k]; //叠加前几个月的天数
 33     }
 34 
 35     printf("%d月%d日是%d年的第%d天\n",month,day,year,sum);
 36 
 37     return 0;
 38 }
 39 

结果:

3.键盘录入一组数列,求最大数、最小数、均值

代码:

  1 /*
  2   需求:键盘录入一组数列,求最大数、最小数、均值
  3 */
  4 #include <stdio.h>
  5 
  6 int main()
  7 {
  8     int arr[5];
  9     int i,j;
 10     int max = 0,min = 0;
 11     double sum = 0.0;
 12 
 13     printf("请输入5个数列:\n");
 14 
 15     int length = sizeof(arr) / sizeof(int);  //计算数组大小    
 16 
 17     for(i = 0;i < length;i++) //通过循环录入数据
 18     {
 19         scanf("%d",&arr[i]);
 20     }
 21 
 22     min = arr[0];
 23 
 24     for(j = 0;j < length;j++)
 25     {
 26         sum += arr[j];
 27 
 28         if(arr[j] > max)
 29         {
 30             max = arr[j];
 31         }
 32         else if(arr[j] < min)
 33         {
 34             min = arr[j];
 35         }
 36 
 37     }
 38 
 39     sum = sum / j;  
 40 
 41     printf("最大数为:%d\n",max);
 42     printf("最小值为:%d\n",min);
 43     printf("平均值为:%.3f\n",sum);
 44 
 45     return 0;
 46 }

结果:

4.从键盘录入一组数列,判断是否是回文,举例:12321,abba,121

代码:

  1 /*
  2   需求:判断一组数列是不是回文数
  3 */
  4 #include <stdio.h>
  5 
  6 int main()
  7 {
  8     int i,j;
  9     int num;
 10     int arr[5];
 11 
 12     printf("请输入五组整数: \n");
 13 
 14     int length = sizeof(arr) / sizeof(int);
 15 
 16     for(i = 0;i < length;i++)
 17     {
 18         scanf("%d", &arr[i]);
 19     }
 20 
 21         for(i = 0;i < length;i++)
 22         {
 23             num = 0;
 24             j = arr[i];
 25             while (j != 0)
 26             {
 27                 num = num * 10 + j % 10; //实现反转
 28                 j /= 10;
 29             }
 30 
 31             if (arr[i] == num)
 32             {
 33                 printf("%d 是回文数\n", arr[i]); //如果输出的和输入的数相同
 34             }
 35             else
 36             {
 37                 printf("%d 不是回文数\n", arr[i]);
 38             }
 39         }
 40 
 41     return 0;
 42 }

结果:

5.用数组存储10个整型数,通过键盘输入一个数,找出该数在数组中的下标值

代码:

  1 /*
  2   需求:用数组存储10个整型数,通过键盘输入一个数,找出该数在数组中的下标值
  3 */
  4 #include <stdio.h>
  5 
  6 int main()
  7 {
  8     int a;
  9     int arr[10] = {1,2,3,4,5,6,7,8,9,0};
 10 
 11     int length = sizeof(arr) / sizeof(int);
 12 
 13     printf("请输入一个数组中存在的数:");
 14     scanf("%d",&a);
 15 
 16     for(int i = 0;i < length;i++)
 17     {
 18         if(a == arr[i])
 19         {
 20             printf("您输入的数是下标为%d的数组元素",i);
 21         }
 22     }
 23     printf("\n");
 24 
 25 
 26     return 0;
 27 }

结果:

6.通过键盘输入 10 个学员成绩

'1.输出不及格学员的成绩和下标2.求最高分的下标值 3.求最低成绩的下标值 4.求总成绩及平均成绩'

代码:

  1 /**
  2    * 需求:通过键盘输入 10 个学员成绩
  3    * 输出不及格学员的成绩和下标
  4    * 求最高分的下标值
  5    * 求最低成绩的下标值
  6    * 求总成绩及平均成绩
  7 */
  8 #include <stdio.h>
  9 
 10 int main()
 11 {
 12     int fail,max = 0,min = 0,sum,a,b,i,j;
 13     int arr[10];
 14 
 15     printf("请输入十组整数: \n");
 16 
 17     int length = sizeof(arr) / sizeof(int);
 18 
 19     for(i = 0;i < length;i++)
 20     {
 21           scanf("%d", &arr[i]);
 22     }
 23 
 24     sum = 0;
 25 
 26     for(j = 0;j < length;j++)
 27     {
 28         if(arr[j] < 60)
 29         {
 30             printf("不及格学生成绩为:%d,数组中下标为%d\n",arr[j],j);
 31         }
 32         if(arr[j] > max)
 33         {
 34             max = arr[j];
 35         }
 36         if(arr[j] < min)
 37         {
 38             min = arr[j];
 39         }
 40 
 41         sum += arr[j];
 42     }
 43 
 44     for(j = 0;j < length;j++)
 45     {
 46         if(max == arr[j])
 47         {
 48             a = j;
 49         }
 50         if(min == arr[j])
 51         {
 52             b = j;
 53         }
 54     }
 55 
 56     double c = sum / 10.0;
 57 
 58     printf("最高分为%d,数组中下标为%d\n",max,a);
 59     printf("最低分为%d,数组中下标为%d\n",min,b);
 60     printf("平均值为:%.3f\n",c);
 61     
 62     return 0;
 63 }

结果:

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

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

相关文章

Redis远程字典服务器(2) —— 全局命令

一&#xff0c;使用官方文档 学会使用文档&#xff0c;是一个优秀程序员的必备技能。Redis的命令非常多&#xff08;上百个&#xff09;&#xff0c;因为Redis是通过键值对存储数据的&#xff0c;key为string类型&#xff0c;但是value可以是其它的数据类型&#xff08;字符串…

javascript-动态增加和删除表格的行

本地环境&#xff1a;win10 / centos6 &#xff0c; python3 实现效果 点击添加峰图按钮即可增加一行&#xff0c;点击每行右侧的删除按钮即可删除行。 初始状态&#xff1a; 点击后&#xff1a; 实际生成的html内容类似下图&#xff0c;可以看到&#xff0c;只有id这样需要…

VMware capacity mismatch for disk错误解决办法

因为业务或者学习很多时候我们要用到虚拟机&#xff0c;当我们使用vmware去打开VirtualBox导出的文件虚拟机镜像时会发生capacity mismatch for disk错误&#xff0c;同时在网上查询没有完整通俗易懂的解决方案&#xff0c;我本人也遇到了这个错误&#xff0c;经过测试以后写下…

arcgis server 发布地图服务相关问题

地图类型选择feature access 发布后&#xff0c;存在个别图层失败&#xff0c; 配置符号后&#xff0c;发布地图服务时&#xff0c;选择了Map Server 和Feature Access后&#xff0c;地图发布成功&#xff0c;但是对于feature server 类型中部分图层失败&#xff0c;在服务目录…

【题解】【数学】—— [CSP-J2019 江西] 次大值

【题解】【数学】—— [CSP-J2019 江西] 次大值 [CSP-J2019 江西] 次大值题目描述输入格式输出格式输入输出样例输入 #1输出 #1输入 #2输出 #2输入 #3输出 #3 提示 解法1.暴力枚举(非正解)1.1.题意分析1.2.代码 解法2.总结规律(正解)2.1.题意分析2.1.1.解题思路2.2.2.功能拆解 …

5个适用于Linux系统的PDF转Word工具

凭借其跨平台和设备的统一标准、兼容性和规模小巧等主要优点&#xff0c;可携带文档格式&#xff08;PDF&#xff09;可谓最主流的文件格式之一。 市面上有许多查看PDF文件的强大工具&#xff0c;因此所有Linux系统的用户都可以根据自身喜好找到合适的PDF查看工具。然而&#x…

三星、小米和 OPPO设备实验室将采用Android设备流技术

早在 5 月份的年度开发者大会上&#xff0c;Google就发布了 Android 设备流测试版。开发人员可以在Google数据中心的真实物理设备上更轻松、更互动地测试自己的应用程序&#xff0c;这些设备会直接串流到 Android Studio。今天&#xff0c;Google宣布与三星、小米和 OPPO 合作扩…

染色法+组合数学,CF 557D - Vitaly and Cycle

一、题目 1、题目描述 2、输入输出 2.1输入 2.2输出 3、原题链接 557D - Vitaly and Cycle 二、解题报告 1、思路分析 t 的取值范围为&#xff1a;[0, 3] 0&#xff1a;本身有奇环&#xff0c;样例说明方案为1 1&#xff1a;存在偶数长度路径&#xff0c;连接一下就行&a…

【数据结构】顺序表实现

0. 前言 小伙伴们大家好&#xff0c;从今天开始&#xff0c;我们就开始学习《数据结构》这门课程~ 首先想给大家讲讲什么是数据结构&#xff1f; 0.1 数据结构是什么&#xff1f; 数据结构是由“数据”和“结构”两词组合⽽来。 什么是数据&#xff1f; 比如常⻅的数值1、…

Visionpro二次开发学习笔记8-如何将静态或交互式图形添加到CogDisplay中

如何将静态或交互式图形添加到CogDisplay中 CogDisplay支持两种类型的图形&#xff1a;静态图形和交互式图形。静态图形一旦添加到显示中&#xff0c;就无法移动或更改。静态图形不能添加提示文本&#xff08;TipText&#xff09;。 交互式图形在启用图形的交互属性时&#x…

【数据结构】-----二叉搜索树(C++)

目录 前言 一、是什么 ​编辑 二、实现 Ⅰ、结点类 Ⅱ、结构及基本接口实现 ​编辑 ①插入 ②查找 ③删除(重难点) 情况一&#xff1a;待删除结点为叶子结点(无孩子) 情况二&#xff1a;待删除结点存在一个孩子结点(可能左/右) 情况三&#xff1a;待删除结点存在…

【iOS】—— 事件传递链和响应者链总结

事件传递链和响应者链总结 1. 事件传递链&#xff1a;事件传递链&#xff1a;传递流程&#xff1a;总结第一响应者&#xff1a; 2. 响应者链响应者链传递流程总结响应者链流程 总结&#xff1a; 之前也学习过这个内容这次在复习的时候&#xff0c;就想着写一下总结&#xff1a;…

Linux部署python3.0版本——及基本操作

&#xff08;一&#xff09;部署环境 首先查看列表&#xff0c;找到python3.0的包 yum list installed|grep python 如果没有&#xff0c;是因为yum源的问题&#xff0c;可部署阿里云镜像然后下载epel包&#xff0c;这里的内容可参考前面的阿里云镜像部署 然后进行下载 yum…

TensorRT-LLM中的 Quantization GEMM(Ampere Mixed GEMM)的 CUTLASS 2.x 实现讲解

在LLM的推理和部署中&#xff0c;低精度量化对于性能的提升十分关键&#xff0c;本次分享将为大家介绍TRT-LLM中是如何基于CUTLASS 2.x来实现PerChannel/AWQ/SmoothQuant等量化方法在模型推理过程的计算。Slides来自BiliBili NVIDIA英伟达频道 上传的《TensorRT-LLM中的 Quanti…

最新CSS3伪类和伪元素详解

第4章 伪类和伪元素 4.1结构伪类 E:first-child{},第一个元素 样式&#xff1a; p:first-child {color: red; } <div><p>Lorem ipsum</p><p>Dolor sit amet.</p> </div> 4.1.1nth-*伪类 以计数为基础的&#xff0c;默认情况下&…

某赛通电子文档安全管理系统 CDGAuthoriseTempletService1 SQL注入漏洞复现(XVE-2024-19611)

0x01 产品简介 某赛通电子文档安全管理系统(简称:CDG)是一款电子文档安全加密软件,该系统利用驱动层透明加密技术,通过对电子文档的加密保护,防止内部员工泄密和外部人员非法窃取企业核心重要数据资产,对电子文档进行全生命周期防护,系统具有透明加密、主动加密、智能…

RPA在政务服务中的挑战与解决方案

随着数字化时代的到来&#xff0c;数字政务的建设已成必然趋势&#xff0c;RPA作为数字化转型的重要工具之一&#xff0c;能够帮助政府单位快速实现业务流程的自动化和智能化&#xff0c;提高工作效率和质量&#xff0c;为建设数字政务提供强有力的支持&#xff0c;因此正被越来…

深植根基、蓬勃向上 | openKylin 2.0正式发布!

2024年8月8日&#xff0c;openKylin 2.0版本正式发布&#xff01;该版本默认搭载Linux 6.6 LTS内核&#xff0c;完成180操作系统核心组件自主选型升级&#xff0c;深度融合AI技术&#xff0c;上线麒麟AI助手等实用AI功能&#xff0c;并为用户带来包括开明软件包格式、不可变系统…

Unity 在Editor下保存对Text组件的文本的修改

Unity 在Editor下保存对Text组件的文本的修改 /****************************************************文件&#xff1a;TimeStampForText.cs作者&#xff1a;lenovo邮箱: 日期&#xff1a;2024/8/8 1:9:21功能&#xff1a; *************************************************…

聚观早报 | 小米15 Ultra相机规格;一加Ace 5参数规格

聚观早报每日整理最值得关注的行业重点事件&#xff0c;帮助大家及时了解最新行业动态&#xff0c;每日读报&#xff0c;就读聚观365资讯简报。 整理丨Cutie 8月8日消息 小米15 Ultra相机规格 一加Ace 5参数规格 iOS 18.1代码曝光 SK电讯加大AI投入 Figure 02 人形机器人…