C语言基础入门案例(3)

目录

第一题:一维数组的最大值和最小值求解

第二题:求一维数组中的第二大的数

第三题:计算5个整数的平均值

第四题:查找整数在数组中的索引位置

第五题:统计字符串中数字字符的个数


第一题:一维数组的最大值和最小值求解

问题描述:
编写一个C语言程序,该程序应定义两个函数maxmin,用于分别求取给定一维数组中的最大值和最小值。主函数main中应声明一个整数数组,并计算该数组的长度。然后,调用maxmin函数分别获取数组的最大值和最小值,并将结果输出到控制台。

要求:

  1. max函数应接收一个整数数组的指针和数组的长度作为参数,返回数组中的最大值。
  2. min函数应接收一个整数数组的指针和数组的长度作为参数,返回数组中的最小值。
  3. main函数中,应定义并初始化一个整数数组,然后计算数组的长度。
  4. 调用maxmin函数,并将返回的最大值和最小值通过printf函数输出到控制台。

示例:
给定数组{1, 2, 3, 55, 34, 12, 98, 5, 7, 8}

程序应输出:

最大值 = 98 
最小值 = 1

注意:在实际编程中,请确保数组的大小足够大,以防止数组越界访问。此外,在调用maxmin函数时,应传递数组的地址(即使用&操作符)和数组的长度。

示例代码:

#include <stdio.h>// 最大值
int max(int *arr, int len)
{int max = arr[0]; // 最大值  定义一个临时变量保存比较后的结果for (int i = 0; i < len; i++){// 最大值if (arr[i] > max){max = arr[i];}}return max;
}
// 最小值
int min(int *arr, int len)
{int min = arr[0]; // 最小值  定义一个临时变量保存比较后的结果for (int i = 0; i < len; i++){// 最小值if (arr[i] < min){min = arr[i];}}return min;
}
int main()
{// 求一维数组的最大值和最小值。// 1. 定义数组int arr[10] = {1, 2, 3, 55, 34, 12, 98, 5, 7, 8};// 2. 数组长度int len = sizeof(arr) / sizeof(arr[0]);printf("最大值 = %d\n最小值 = %d", max(&arr, len), min(&arr, len));return 0;
}

运行结果:

第二题:求一维数组中的第二大的数

问题描述:
编写一个C语言程序,该程序应定义一个整数数组,并求出该数组中的第二大的数。要求程序首先找到数组中的最大值,并随后在剩余的元素中找到次大值。最后,将次大值输出到控制台。

要求:

  1. 数组应至少包含两个元素,以确保可以找到第二大的数。
  2. 程序中应包含对数组长度的计算,以便进行循环遍历。
  3. 在遍历数组时,首先找到最大值,并记录其位置(如果需要)。
  4. 随后,再次遍历数组,但跳过最大值,找到次大值。
  5. 最后,使用printf函数输出次大值。

示例:
给定数组{1, 2, 3, 55, 34, 12, 56, 98, 7, 8}

输出:

第二大的值 = 56

注意:如果数组中存在多个相同的最大值,那么次大值应为除去这些最大值后的最大元素。此外,如果数组只有一个元素或所有元素都相同,则程序应能够处理这种情况,并给出适当的提示或输出。

示例代码:

#include <stdio.h>int main()
{// 2.求一个数组中第二大的数。// 1. 定义数组int arr[10] = {1, 2, 3, 55, 34, 12,56, 98, 7, 8};// 2. 定义一个临时变量保存最大值int max = arr[0];// 定义变量保存第二大的值int secondMax;// 3. 长度int len = sizeof(arr) / sizeof(arr[0]);// 4. for循环for (int i = 0; i < len; i++){if (arr[i] > max){secondMax = max;max = arr[i];}else{if (arr[i] > secondMax){secondMax = arr[i];}}}printf("第二大的值 = %d\n", secondMax);return 0;
}

第三题:计算5个整数的平均值

问题描述:
编写一个C语言程序,该程序要求用户输入5个整数,并将这些整数存储在一个数组中。程序需要计算并输出这5个整数的平均值。

要求:

  1. 定义一个长度为5的整数数组用于存储用户输入的整数。
  2. 使用循环结构(如while循环)从用户处获取5个整数,并将它们存储在数组中。
  3. 计算数组中所有数字的总和。
  4. 计算平均值,并将结果存储在变量中。
  5. 使用printf函数输出平均值。

注意:

  • 平均值应使用整数除法进行计算,这意味着结果将是一个整数。如果需要更精确的结果,可以考虑使用浮点数除法。
  • 在输入每个数字时,应提示用户输入相应的数字(例如,“请输入第1个数字:”,“请输入第2个数字:”,依此类推)。

输出:

请输入第1个数字: 5

请输入第2个数字: 10

请输入第3个数字: 15

请输入第4个数字: 20

请输入第5个数字: 25

平均值 = 15

示例代码:

#include <stdio.h>int main()
{// 编写一个程序,要求用户输入5个整数,将它们存储在一个数组中,然后计算并输出这5个整数的平均值。// 1. 定义变量保存用户输入的整数int num[5];// 2. 初始化 用于while循环次数和数组赋值下标int i = 0;// 3. 用于存储所有数字累加的和int sum = 0;// 4. 定义变量保存计算结果int resule = 0;// 5. 开始输入 到第5个数字结束while (i < 5){printf("请输入%d个数字:\n", i + 1);scanf("%d", &num[i]);i++;}// 6. 数组长度int len = sizeof(num) / sizeof(num[0]);// 7. 循环数组for (int i = 0; i < len; i++){// 7.1 所有数字相加的和sum += num[i];}// 8 计算平均值resule = (sum / len);printf("平均值 = %d\n", resule);return 0;
}

 运行结果:

第四题:查找整数在数组中的索引位置

问题描述:
编写一个C语言程序,该程序包含一个名为find_index的函数,该函数接受一个整数数组、数组的长度和一个待查找的整数作为参数。函数的任务是查找该整数在数组中的索引位置,并返回该索引。如果整数在数组中不存在,则函数应返回-1。

main函数中,应定义一个包含10个元素的整数数组,并调用find_index函数来查找一个特定的整数在数组中的索引位置。最后,程序应输出找到的索引或-1(如果整数不存在于数组中)。

要求:

  1. find_index函数应使用循环遍历数组,直到找到目标整数或遍历完整个数组。
  2. 如果找到目标整数,函数应立即返回其索引位置。
  3. 如果遍历完整个数组仍未找到目标整数,函数应返回-1。
  4. main函数中应初始化一个包含10个元素的数组,并调用find_index函数来查找一个特定的整数。
  5. 使用printf函数输出找到的索引或-1。

输出:

下标 = 6

示例代码:

#include <stdio.h>
// 编写一个函数find_index,接受一个整型数组、数组的长度和一个整数作为参数,查找并返回该整数在数组中的索引位置。
// 如果该整数不存在于数组中,则返回-1。在主函数中定义一个包含10个元素的数组,并调用find_index函数查找某个整数的索引位置并输出。int find_index(int *arr, int len, int num)
{for (int i = 0; i < len; i++){if (arr[i] == num){return i;}}return -1;
}int main()
{// 1. 定义数组int arr[10] = {1, 2, 3, 55, 34, 12, 98, 5, 7, 8};// 2. 长度int len = sizeof(arr) / sizeof(arr[0]);// 3. 调用方法 传递参数int res = find_index(&arr, len, 98);printf("下标 = %d\n", res);return 0;
}

 运行结果:

第五题:统计字符串中数字字符的个数

问题描述:
编写一个C语言程序,该程序接受用户输入的一个字符串,并统计该字符串中数字字符(0-9)的个数。程序应定义一个函数来计算并返回数字字符的数量,然后在主函数中调用该函数并输出结果。

要求:

  1. 定义一个函数getlen,该函数接受一个字符串(使用字符指针表示)作为参数,并返回该字符串中数字字符的数量。
  2. getlen函数中,使用一个循环来遍历字符串的每个字符,并检查它是否是数字字符(即字符的ASCII值是否在'0'到'9'之间)。
  3. 如果字符是数字字符,则递增一个计数器。
  4. 当字符串的末尾字符('\0')被遇到时,停止循环,并返回计数器的值。
  5. main函数中,定义一个字符数组(或字符指针数组)来存储用户输入的字符串。
  6. 使用gets函数从用户处获取字符串输入,并存储在定义的字符数组中。
  7. 调用getlen函数,并将字符数组的地址作为参数传递。
  8. 使用printf函数输出字符串中数字字符的数量。

注意:

  • gets函数在某些编译器或环境下可能被视为不安全,因为它不检查目标数组的大小,可能会导致缓冲区溢出。在实际应用中,建议使用更安全的字符串输入函数,如fgets
  • 由于str是一个字符指针数组,而gets函数期望一个字符数组(即char数组)作为参数,因此str的定义应改为char str[50];而不是char *str[50];

输出:

请输入一个字符串: Hello123World456

字符串数字个数 = 6

运行结果:

 

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

服务器Linux搭建NPM私有仓库

服务器Linux搭建NPM私有仓库 环境搭建 安装 nodejs nodejs官网&#xff1a;https://nodejs.org/en/download/package-manager 可以去官网自行下载nodejs的Linux版本&#xff0c;但是出于别的原因考虑&#xff0c;可以使用nvm去下载nodejs这样会切换nodejs也方便。 nvm 这…

MySQL进阶-----limit、count、update优化

目录 前言 一、limit优化 1. 未优化案例 2.优化后案例 二、count优化 count用法 三、update优化 1.锁行情况&#xff08;有索引&#xff09; 2.锁表情况&#xff08;无索引&#xff09; 前言 上一期我们学习了order by优化和group by优化&#xff0c;本期我们就继续学习…

程序员接单的渠道有没有可靠介绍?

程序员接单的渠道有很多&#xff0c;但总结下来无非就是个人介绍和程序员接单平台。 这里就不多说废话了&#xff0c;直接上当前市面上靠谱且稳定的程序员接单平台list。 程序员客栈 近100w程序员都在使用的程序员接单平台。作为一个靠谱的线上接单渠道&#xff0c;程序员客栈…

SSRF靶场

SSRF概述 ​ 强制服务器发送一个攻击者的请求 ​ 互联网上的很多web应用提供了从其他服务器&#xff08;也可以是本地)获取数据的功能。使用用户指定的URL&#xff0c;web应用可以获取图片&#xff08;载入图片&#xff09;、文件资源&#xff08;下载或读取)。如下图所示&…

笔试题1 -- 吃掉字符串中相邻的相同字符(点击消除_牛客网)

吃掉字符串中相邻的相同字符 文章目录 吃掉字符串中相邻的相同字符题目重现解法一&#xff1a;(基于 erase() 函数实现)解法二&#xff1a;&#xff08;利用 栈 辅助实现&#xff09;总结 题目链接&#xff1a; 点击消除_牛客网 题目重现 牛牛拿到了一个字符串。 他每次“点击…

关联规则挖掘(一)

目录 一、关联规则的概念&#xff08;一&#xff09;基本概念&#xff08;二&#xff09;项集的性质 二、关联规则的Apriori算法&#xff08;一&#xff09;发现频繁项集&#xff08;二&#xff09;产生关联规则 一、关联规则的概念 &#xff08;一&#xff09;基本概念 事务数…

byobu

byobu 终端多路复用器 一、byobu 安装二、byobu 使用三、其他终端多路复用器四、ssh byobu 远程协作 系统环境: linux(ubuntu,debian,kali) 一、byobu 安装 byobu 是包装过的tmux #sudo apt install tmux sudo apt install byobubyobu二、byobu 使用 创建窗口: Ctrl a c…

windows编译xlnt,获取Excel表里的数据

用git拉取项目 这个文件是空的 要用git拉下来&#xff0c;使用终端编译xlnt库 点击解决方案 运行生成 然后新建项目&#xff0c;配置好库&#xff0c; #include <iostream> #include <xlnt/xlnt.hpp>int main() {// 打开 Excel 文件xlnt::workbook workbook;workb…

Redis从入门到精通(十九)多级缓存(四)Nginx共享字典实现本地缓存

文章目录 前言6.5 实现多级缓存6.5.6 Nginx本地缓存6.5.6.1 代码实现6.5.6.2 功能测试 6.6 缓存同步6.6.1 缓存同步策略6.6.2 异步通知策略 前言 Redis多级缓存系列文章&#xff1a; Redis从入门到精通(十六)多级缓存(一)Caffeine、JVM进程缓存 Redis从入门到精通(十七)多级缓…

EPSON两款新的加速器M-A552AC1和M-A552AR1

老化的社会基础设施以及基础设施维护、监控和更新成本的飙升被认为是国家和社区面临的严重社会问题&#xff0c;在有着高度城市化的国家尤为明显。在这样的环境和认识推动下,利用传感器监测结构健康的技术需求的日益增长。爱普生推出了两款新的高性能加速器M-A552AC1和M-A552AR…

【C++】开始使用stack 与 queue

送给大家一句话&#xff1a; 忍受现实给予我们的苦难和幸福&#xff0c;无聊和平庸。 – 余华 《活着》 开始使用queue 与 stack 1 前言2 stack与queue2.1 stack 栈2.2 queue 队列2.3 使用手册 3 开始使用Leetcode 155.最小栈牛客 JZ31 栈的弹出压入序列Leetcode 150.逆波兰表达…

tailwindcss在manoca在线编辑智能感知

推荐一下monaco-tailwindcss库&#xff0c;它实现在monaco-editor网页在线编辑器中对tailwindcss的智能感知提示&#xff0c;在利用tailwindcss实现html效果布局。非常的方便。 生成CSS