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

C语言基础------练习2

1.实现求数组中的第二大值

        代码运行结果:

        代码解析:

//定义数组并计算长度

int arr[] = {3, 5, 1, 8, 7, 2, 9, 4, 6};
int n = sizeof(arr) / sizeof(arr[0]); // 计算数组长度
//定义一个数组 arr 并计算其长度 n。
//检查数组长度

if (n < 2) 
{
    printf("数组中没有足够的元素来找到第二大值。\n");
    return 1;
}
//如果数组长度小于2,则无法找到第二大值,输出提示信息并退出程序。
//初始化最大值和第二大值

int first = INT_MIN; // 最大值
int second = INT_MIN; // 第二大值
//使用 INT_MIN 初始化最大值和第二大值,确保任何数组元素都大于初始值。
//遍历数组

for (int i = 0; i < n; i++) 
{
    if (arr[i] > first) 
{
        second = first; // 更新第二大值
        first = arr[i]; // 更新最大值
    } else if (arr[i] > second && arr[i] != first) 
{
        second = arr[i]; // 更新第二大值
    }
}
/*遍历数组中的每个元素:
如果当前元素大于 first,则更新 second 为 first,并将 first 更新为当前元素。
如果当前元素大于 second 且不等于 first,则更新 second 为当前元素。
输出结果


if (second == INT_MIN) 
{
    printf("数组中没有第二大的值。\n");
} else {
    printf("数组中的第二大值是: %d\n", second);
}
如果 second 仍然是 INT_MIN,说明数组中没有第二大的值。
否则,输出第二大值。
运行结果
假设数组为 {3, 5, 1, 8, 7, 2, 9, 4, 6},输出将是:

数组中的第二大值是: 8
*/

2.终端输入带空格的字符串,删除字符中的空格

        代码运行结果:

        代码解析:

/*
定义字符数组

char input[100]; // 用于存储输入的字符串
char output[100]; // 用于存储删除空格后的字符串
定义两个字符数组 input 和 output,分别用于存储输入的字符串和删除空格后的字符串。
提示用户输入字符串

printf("请输入一个带空格的字符串: ");
fgets(input, sizeof(input), stdin);
使用 fgets 函数从终端读取带空格的字符串。fgets 会读取直到遇到换行符或达到指定的最大长度。
删除空格

j = 0;
for (i = 0; input[i] != '\0'; i++) 
{
    if (input[i] != ' ' && input[i] != '\n') 
{
        output[j++] = input[i];
    }
}
output[j] = '\0'; // 添加字符串结束符
初始化 j 为0,用于跟踪 output 数组的索引。
遍历 input 数组中的每个字符:
如果当前字符不是空格 ' ' 且不是换行符 '\n',则将其复制到 output 数组中,并递增 j。
最后,添加字符串结束符 '\0' 到 output 数组的末尾。
输出结果

printf("删除空格后的字符串: %s\n", output);
打印删除空格后的字符串。
运行示例
假设用户输入如下:

请输入一个带空格的字符串: Hello World
输出将是:

删除空格后的字符串: HelloWorld

*/


http://www.kler.cn/a/514900.html

相关文章:

  • 使用Sum计算Loss和解决梯度累积(Gradient Accumulation)的Bug
  • STranslate 中文绿色版即时翻译/ OCR 工具 v1.3.1.120
  • Flutter:自定义Tab切换,订单列表页tab,tab吸顶
  • 计算机组成原理(计算机系统3)--实验八:处理器结构拓展实验
  • 鸿蒙仓颉环境配置(仓颉SDK下载,仓颉VsCode开发环境配置,仓颉DevEco开发环境配置)
  • python学opencv|读取图像(四十)掩模:三通道图像的局部覆盖
  • [实现Rpc] 项目设计 | 服务端模块划分 | rpc | topic | server
  • 【分布式知识】Spring Cloud Gateway实现跨集群应用访问
  • 算法 | 递归与递推
  • 大语言模型LMM学习路线—从入门到进阶
  • [OpenGL]实现屏幕空间环境光遮蔽(Screen-Space Ambient Occlusion, SSAO)
  • 大一计算机的自学总结:随机快速排序及随机快速算法
  • 学习一下强化学习
  • C语言之整数转换英文表示
  • 机器学习(6):K 近邻算法
  • VirtualBox can‘t enable the AMD-V extension
  • 扬帆数据结构算法之雅舟航程,漫步C++幽谷——LeetCode刷题之移除链表元素、反转链表、找中间节点、合并有序链表、链表的回文结构
  • 剑指Offer|LCR 040.最大矩形
  • Solidity06 Solidity变量数据存储和作用域
  • 安装centos7之后问题解决
  • 根除埃博拉病毒(2015MCM美赛A)
  • 嵌入式入门(一)-STM32CubeMX
  • c++中的链表list
  • 【Android】创建基类BaseActivity和BaseFragment
  • Spring注解篇:@RestController详解
  • AI大模型-提示工程学习笔记11-思维树