C基础寒假练习(8)
一、终端输入10个学生成绩,使用冒泡排序对学生成绩从低到高排序
#include <stdio.h>
int main(int argc, const char *argv[])
{int arr[10]; // 定义一个长度为10的整型数组,用于存储学生成绩int len = sizeof(arr) / sizeof(arr[0]); // 计算数组的长度int temp; // 临时变量,用于交换数组元素printf("请输入学生成绩:\n"); // 提示用户输入学生成绩for (int a = 0; a < len; a++) { // 循环读取每个学生的成绩printf("%d号学生成绩:", a + 1); // 提示用户输入第a+1个学生的成绩scanf("%d", &arr[a]); // 读取用户输入的成绩并存储到数组中putchar(10); // 输出换行符}// 冒泡排序算法,对数组进行升序排序for (int i = 1; i < len; i++) {for (int j = 0; j < len - i; j++) {if (arr[j] >= arr[j + 1]) { // 如果当前元素大于或等于下一个元素,则交换它们的位置temp = arr[j]; // 使用临时变量保存当前元素的值arr[j] = arr[j + 1]; // 将下一个元素的值赋给当前元素arr[j + 1] = temp; // 将临时变量的值赋给下一个元素}}}// 输出排序后的学生成绩for (int b = 0; b < len; b++) {printf("%d ", arr[b]); // 输出数组中的每个元素}putchar(32); // 输出空格return 0; // 返回0,表示程序正常结束
}
代码功能总结:
-
输入部分:
- 提示用户输入10个学生的成绩,并将这些成绩存储在数组
arr中。 - 使用
scanf函数读取用户输入的成绩。
- 提示用户输入10个学生的成绩,并将这些成绩存储在数组
-
排序部分:
- 使用冒泡排序算法对数组
arr进行升序排序。 - 通过嵌套的
for循环比较相邻的元素,如果前一个元素大于或等于后一个元素,则交换它们的位置。
- 使用冒泡排序算法对数组
-
输出部分:
- 遍历排序后的数组,并输出每个学生的成绩。
- 使用
putchar函数输出空格和换行符。
注意事项:
- 确保输入的成绩是整数,否则
scanf可能会出错。 - 代码假设最多有10个学生的成绩需要输入,可以根据实际需求调整数组的大小。

二、实现字符串的整体逆置
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main(int argc, const char *argv[])
{char str1[20];char str2[20];// 从标准输入读取一行字符串到str1中gets(str1);putchar(10); // 输出一个换行符// 获取字符串的长度int len = strlen(str1);// 如果字符串最后一个字符是换行符,则将其替换为字符串结束符'\0'if (str1[len - 1] == '\n') {str1[len - 1] = '\0';len--; // 更新长度}// 将str1中的字符逆序复制到str2中for (int i = len - 1; i >= 0; i--){str2[len - 1 - i] = str1[i];}// 输出逆序后的字符串puts(str2);putchar(10); // 输出一个换行符return 0;
}
代码解释:
1. 头文件包含:
• #include<stdio.h>: 包含标准输入输出库函数。
• #include<string.h>: 包含字符串处理函数。
• #include<stdlib.h>: 包含标准库函数(虽然在这个程序中没有使用)。
2. 主函数定义:
• int main(int argc, const char *argv[]): 主函数入口,参数argc表示命令行参数的数量,argv是命令行参数数组。
3. 变量声明:
• char str1[20];: 声明一个字符数组str1,用于存储输入的字符串,最大长度为20个字符。
• char str2[20];: 声明另一个字符数组str2,用于存储逆序后的字符串。
4. 读取输入:
• gets(str1);: 从标准输入读取一行字符串并存储到str1中。注意:gets函数不安全,建议使用fgets替代。
• putchar(10);: 输出一个换行符。
5. 计算字符串长度:
• int len = strlen(str1);: 计算字符串str1的长度并存储在len中。
6. 检查并处理换行符:
• if (str1[len - 1] == '\n'): 检查字符串最后一个字符是否是换行符。
• str1[len - 1] = '\0';: 如果是换行符,将其替换为字符串结束符\0。
• len--;: 更新字符串长度。
7. 逆序字符串:
• for (int i = len - 1; i >= 0; i--): 从字符串末尾开始遍历。
• str2[len - 1 - i] = str1[i];: 将str1中的字符逆序复制到str2中。
8. 输出逆序后的字符串:
• puts(str2);: 输出逆序后的字符串。
• putchar(10);: 输出一个换行符。
9. 返回值:
• return 0;: 返回0,表示程序正常结束。

教师版;
#include <stdio.h>
#include <string.h>
int main(int argc, const char *argv[])
{char str[100];gets(str);puts(str);int j=strlen(str)-1;int i=0;char temp;while(i<j){temp=str[j];str[j]=str[i];str[i]=temp;i++;j--;}puts(str);return 0;
}
相关文章:
C基础寒假练习(8)
一、终端输入10个学生成绩,使用冒泡排序对学生成绩从低到高排序 #include <stdio.h> int main(int argc, const char *argv[]) {int arr[10]; // 定义一个长度为10的整型数组,用于存储学生成绩int len sizeof(arr) / sizeof(arr[0]); // 计算数组…...
Python爬虫:1药城店铺爬虫(完整代码)
⭐️⭐️⭐️⭐️⭐️欢迎来到我的博客⭐️⭐️⭐️⭐️⭐️ 🐴作者:秋无之地 🐴简介:CSDN爬虫、后端、大数据领域创作者。目前从事python爬虫、后端和大数据等相关工作,主要擅长领域有:爬虫、后端、大数据…...
【贪心算法篇】:“贪心”之旅--算法练习题中的智慧与策略(一)
✨感谢您阅读本篇文章,文章内容是个人学习笔记的整理,如果哪里有误的话还请您指正噢✨ ✨ 个人主页:余辉zmh–CSDN博客 ✨ 文章所属专栏:贪心算法篇–CSDN博客 文章目录 一.贪心算法1.什么是贪心算法2.贪心算法的特点 二.例题1.柠…...
Rust 变量特性:不可变、和常量的区别、 Shadowing
Rust 变量特性:不可变、和常量的区别、 Shadowing Rust 是一门以安全性和性能著称的系统编程语言,其变量系统设计独特且强大。本文将从三个角度介绍 Rust 变量的核心特性:可变性(Mutability)、变量与常量的区别&#…...
基于Springboot框架的学术期刊遴选服务-项目演示
项目介绍 本课程演示的是一款 基于Javaweb的水果超市管理系统,主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的 Java 学习者。 1.包含:项目源码、项目文档、数据库脚本、软件工具等所有资料 2.带你从零开始部署运行本套系统 3.该项目附…...
方法一:将私钥存入环境变量,环境变量指什么//spring中,rsa私钥应该怎么处置
环境变量(Environment Variables)是操作系统提供的一种机制,用于存储和传递配置信息或敏感数据(如密钥、密码等)。每个进程都可以访问一组环境变量,这些变量在操作系统级别定义,可以被应用程序读…...
React中useState()钩子和函数式组件底层渲染流程详解
useState()钩子底层渲染流程 React中useState的底层渲染机理。首先,我知道useState是React Hooks的一部分,用于在函数组件中添加状态。但底层是如何工作的呢?可能涉及到React的调度器、Fiber架构以及闭包等概念。 首先,React使用F…...
Cocos Creator 3.8 2D 游戏开发知识点整理
目录 Cocos Creator 3.8 2D 游戏开发知识点整理 1. Cocos Creator 3.8 概述 2. 2D 游戏核心组件 (1) 节点(Node)与组件(Component) (2) 渲染组件 (3) UI 组件 3. 动画系统 (1) 传统帧动画 (2) 动画编辑器 (3) Spine 和 …...
Java创建对象有几种方式?
大家好,我是锋哥。今天分享关于【Java创建对象有几种方式?】面试题。希望对大家有帮助; Java创建对象有几种方式? 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 在 Java 中,创建对象有几种常见的方式,具体如下&…...
R 字符串:深入理解与高效应用
R 字符串:深入理解与高效应用 引言 在R语言中,字符串是数据处理和编程中不可或缺的一部分。无论是数据清洗、数据转换还是数据分析,字符串的处理都是基础技能。本文将深入探讨R语言中的字符串概念,包括其基本操作、常见函数以及高效应用方法。 字符串基本概念 字符串定…...
基于Flask的全国星巴克门店可视化分析系统的设计与实现
【FLask】基于Flask的全国星巴克门店可视化分析系统的设计与实现(完整系统源码开发笔记详细部署教程)✅ 目录 一、项目简介二、项目界面展示三、项目视频展示 一、项目简介 该系统采用Python作为主要开发语言,结合Flask框架进行后端开发&…...
pytorch实现半监督学习
人工智能例子汇总:AI常见的算法和例子-CSDN博客 半监督学习(Semi-Supervised Learning,SSL)结合了有监督学习和无监督学习的特点,通常用于部分数据有标签、部分数据无标签的场景。其主要步骤如下: 1. 数…...
Golang :用Redis构建高效灵活的应用程序
在当前的应用程序开发中,高效的数据存储和检索的必要性已经变得至关重要。Redis是一个快速的、开源的、内存中的数据结构存储,为各种应用场景提供了可靠的解决方案。在这个完整的指南中,我们将学习什么是Redis,通过Docker Compose…...
deepseek+vscode自动化测试脚本生成
近几日Deepseek大火,我这里也尝试了一下,确实很强。而目前vscode的AI toolkit插件也已经集成了deepseek R1,这里就介绍下在vscode中利用deepseek帮助我们完成自动化测试脚本的实践分享 安装AI ToolKit并启用Deepseek 微软官方提供了一个针对AI辅助的插件,也就是 AI Toolk…...
49【服务器介绍】
服务器和你的电脑可以说是一模一样的,只不过用途不一样,叫法就不一样了 物理服务器和云服务器的区别 整台设备眼睛能够看得到的,我们一般称之为物理服务器。所以物理服务器是比较贵的,不是每一个开发者都能够消费得起的。 …...
【大数据技术】Day07:本机DataGrip远程连接虚拟机MySQL/Hive
本机DataGrip远程连接虚拟机MySQL/Hive datagrip-2024.3.4VMware Workstation Pro 16CentOS-Stream-10-latest-x86_64-dvd1.iso写在前面 本文主要介绍如何使用本机的DataGrip连接虚拟机的MySQL数据库和Hive数据库,提高编程效率。 安装DataGrip 请按照以下步骤安装DataGrip软…...
大语言模型的个性化综述 ——《Personalization of Large Language Models: A Survey》
摘要: 本文深入解读了论文“Personalization of Large Language Models: A Survey”,对大语言模型(LLMs)的个性化领域进行了全面剖析。通过详细阐述个性化的基础概念、分类体系、技术方法、评估指标以及应用实践,揭示了…...
[论文学习]Adaptively Perturbed Mirror Descent for Learning in Games
[论文学习]Adaptively Perturbed Mirror Descent for Learning in Games 前言概述前置知识和问题约定单调博弈(monotone game)Nash均衡和Gap函数文章问题定义Mirror Descent 方法评价 前言 文章链接 我们称集合是紧的,则集合满足࿱…...
大语言模型概述
一、主流大语言模型(LLMs) GPT系列(OpenAI) 基于Transformer解码器架构,以生成能力著称,代表产品包括ChatGPT(GPT-3.5/4),支持多轮对话、文本生成和复杂推理。其优势在于…...
【Unity踩坑】Unity项目管理员权限问题(Unity is running as administrator )
问题描述: 使用Unity Hub打开或新建项目时会有下面的提示。 解决方法: 打开“本地安全策略”: 在Windows搜索栏中输入secpol.msc并回车,或者从“运行”对话框(Win R,然后输入secpol.msc)启…...
深入理解Node.js_架构与最佳实践
1. 引言 1.1 什么是Node.js Node.js简介:Node.js是一个基于Chrome V8引擎的JavaScript运行时,用于构建快速、可扩展的网络应用。Node.js的历史背景和发展:Node.js最初由Ryan Dahl在2009年发布,旨在解决I/O密集型应用的性能问题。随着时间的推移,Node.js社区不断壮大,提供…...
一文讲解Java中的ArrayList和LinkedList
ArrayList和LinkedList有什么区别? ArrayList 是基于数组实现的,LinkedList 是基于链表实现的。 二者用途有什么不同? 多数情况下,ArrayList更利于查找,LinkedList更利于增删 由于 ArrayList 是基于数组实现的&#…...
使用 DeepSeek-R1 与 AnythingLLM 搭建本地知识库
一、下载地址Download Ollama on macOS 官方网站:Ollama 官方模型库:library 二、模型库搜索 deepseek r1 deepseek-r1:1.5b 私有化部署deepseek,模型库搜索 deepseek r1 运行cmd复制命令:ollama run deepseek-r1:1.5b 私有化…...
MapReduce分区
目录 1. MapReduce分区1.1 哈希分区1.2 自定义分区 2. 成绩分组2.1 Map2.2 Partition2.3 Reduce 3. 代码和结果3.1 pom.xml中依赖配置3.2 工具类util3.3 GroupScores3.4 结果 参考 本文引用的Apache Hadoop源代码基于Apache许可证 2.0,详情请参阅 Apache许可证2.0。…...
【Spring】Spring Cloud Alibaba 版本选择及项目搭建笔记
文章目录 前言1. 版本选择2. 集成 Nacos3. 服务间调用4. 集成 Sentinel5. 测试后记 前言 最近重新接触了 Spring Cloud 项目,为此参考多篇官方文档重新搭建一次项目,主要实践: 版本选择,包括 Spring Cloud Alibaba、Spring Clou…...
C语言实现统计字符串中不同ASCII字符个数
在C语言编程中,经常会遇到一些对字符串进行处理的需求,今天我们就来探讨如何统计给定字符串中ASCII码在0 - 127范围内不同字符的个数。这不仅是一个常见的算法问题,也有助于我们更好地理解C语言中数组和字符操作的相关知识。 问题描述 对于给…...
保姆级教程Docker部署Zookeeper官方镜像
目录 1、安装Docker及可视化工具 2、创建挂载目录 3、运行Zookeeper容器 4、Compose运行Zookeeper容器 5、查看Zookeeper运行状态 6、验证Zookeeper是否正常运行 1、安装Docker及可视化工具 Docker及可视化工具的安装可参考:Ubuntu上安装 Docker及可视化管理…...
DeepSeek R1 简易指南:架构、本地部署和硬件要求
DeepSeek 团队近期发布的DeepSeek-R1技术论文展示了其在增强大语言模型推理能力方面的创新实践。该研究突破性地采用强化学习(Reinforcement Learning)作为核心训练范式,在不依赖大规模监督微调的前提下显著提升了模型的复杂问题求解能力。 技…...
Ollama教程:轻松上手本地大语言模型部署
Ollama教程:轻松上手本地大语言模型部署 在大语言模型(LLM)飞速发展的今天,越来越多的开发者希望能够在本地部署和使用这些模型,以便更好地控制数据隐私和计算资源。Ollama作为一个开源工具,旨在简化大语言…...
并行计算、分布式计算与云计算:概念剖析与对比研究(表格对比)
什么是并行计算?什么是分布计算?什么是云计算?我们如何更好理解这3个概念,我们采用概念之间的区别和联系的方式来理解,做到切实理解,深刻体会。 1、并行计算与分布式计算 并行计算、分布式计算都属于高性…...
