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

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,表示程序正常结束
}
 

代码功能总结:

  1. 输入部分

    • 提示用户输入10个学生的成绩,并将这些成绩存储在数组 arr 中。
    • 使用 scanf 函数读取用户输入的成绩。
  2. 排序部分

    • 使用冒泡排序算法对数组 arr 进行升序排序。
    • 通过嵌套的 for 循环比较相邻的元素,如果前一个元素大于或等于后一个元素,则交换它们的位置。
  3. 输出部分

    • 遍历排序后的数组,并输出每个学生的成绩。
    • 使用 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个学生成绩&#xff0c;使用冒泡排序对学生成绩从低到高排序 #include <stdio.h> int main(int argc, const char *argv[]) {int arr[10]; // 定义一个长度为10的整型数组&#xff0c;用于存储学生成绩int len sizeof(arr) / sizeof(arr[0]); // 计算数组…...

设计模式 ->模板方法模式(Template Method Pattern)

模板方法模式 模板方法模式是一种行为设计模式&#xff0c;它在一个方法中定义一个操作的算法骨架&#xff0c;而将一些步骤延迟到子类中实现。它允许子类在不改变算法结构的情况下重新定义算法中的某些步骤 特点 算法骨架&#xff1a; 在基类中定义算法的框架延迟实现&…...

Redis存储⑤Redis五大数据类型之 List 和 Set。

目录 1. List 列表 1.1 List 列表常见命令 1.2 阻塞版本命令 1.3 List命令总结和内部编码 1.4 List典型使用场景 1.4.1 消息队列 1.4.2 分频道的消息队列 1.4.3 微博 Timeline 2. Set 集合 2.1 Set 集合常见命令 2.2 Set 集合间命令 2.3 Set命令小结和内部编码 2.…...

MySQL开窗函数种类和使用总结

在 MySQL 中&#xff0c;开窗函数&#xff08;Window Functions&#xff09; 是一种强大的功能&#xff0c;能够在数据分析和聚合时提供灵活的方式。开窗函数在 MySQL 8.0 及以上版本 中引入&#xff0c;可以基于数据的某个分组&#xff08;窗口&#xff09;来执行计算&#xf…...

DeepSeek——DeepSeek模型部署实战

摘要 文章主要介绍了DeepSeek大模型的本地部署方法、使用方式以及API接入相关内容。首先指出可通过下载Ollama来部署DeepSeek-R1模型&#xff0c;并给出了模型不同参数版本及存储信息。接着说明了如何通过Chatbox官网下载并接入DeepSeek API&#xff0c;以及如何接入本地部署模…...

zsh: command not found: pip

当你在终端输入 pip install ipykernel 时出现 zsh: command not found: pip 错误&#xff0c;这表明系统无法找到 pip 命令&#xff0c;下面为你详细分析可能的原因以及对应的解决办法。 可能的原因 Python 未安装&#xff1a;pip 是 Python 的包管理工具&#xff0c;若你的…...

机器学习数学基础:16.方程组

一、方程组基础概念 &#xff08;一&#xff09;定义 方程组是由若干个包含未知数的方程组合而成的集合。例如&#xff0c; { 3 x 2 y − z 7 2 x − y 3 z 5 x 4 y − 2 z 3 \begin{cases}3x 2y - z 7\\2x - y 3z 5\\x 4y - 2z 3\end{cases} ⎩ ⎨ ⎧​3x2y−z7…...

即梦(Dreamina)技术浅析(四):生成对抗网络

即梦(Dreamina) 的生成对抗网络(GAN,Generative Adversarial Network)技术是其核心功能之一,用于生成高质量的图像、文本和视频内容。GAN 是一种深度学习模型,由生成器(Generator)和判别器(Discriminator)两部分组成,通过对抗训练的方式不断提升生成内容的质量。 …...

2025年软件测试五大趋势:AI、API安全、云测试等前沿实践

随着软件开发的不断进步&#xff0c;测试方法也在演变。企业需要紧跟新兴趋势&#xff0c;以提升软件质量、提高测试效率&#xff0c;并确保安全性&#xff0c;在竞争激烈的技术环境中保持领先地位。本文将深入探讨2025年最值得关注的五大软件测试趋势。 Parasoft下载https://…...

Vue混入(Mixins)与插件开发深度解析

Vue混入&#xff08;Mixins&#xff09;与插件开发深度解析 Vue混入&#xff08;Mixins&#xff09;与插件开发深度解析1. Vue混入&#xff08;Mixins&#xff09;核心概念1.1 什么是混入1.1.1 本质定义与技术定位1.1.2 混入与相关概念的对比1.1.3 适用场景分析1.1.4 设计哲学与…...

【C++】C++11

目录 C11简介 统一的列表初始化 {}初始化 std::initializer_list 声明 auto decltype nullptr 范围for循环 智能指针 STL中的一些变化 右值引用和移动语义 左值引用和右值引用 右值引用的意义 完美转发 lambda表达式 新的类功能 可变参数模版 包装器 func…...

k8sollama部署deepseek-R1模型,内网无坑

这是目录 linux下载ollama模型文件下载到本地,打包迁移到k8s等无网络环境使用下载打包ollama镜像非k8s环境使用k8s部署访问方式非ollama运行deepseek模型linux下载ollama 下载后可存放其他服务器 curl -L https://ollama.com/download/ollama-linux-amd64.tgz -o ollama-linu…...

mysql8 C++源码中创建表函数,表字段最大数量限制,表行最大存储限制

在 MySQL 8 的 C 源码中&#xff0c;表的最大字段数量限制体现在 MAX_FIELDS 宏定义中。这个宏定义了表中可以拥有的最大字段数量。 代码中的体现 在 mysql_prepare_create_table 函数中&#xff0c;有以下代码段检查表的字段数量是否超过最大限制&#xff1a; cpp if (alt…...

胜任力冰山模型:深入探索职业能力的多维结构

目录 1、序言 2、什么是胜任力&#xff1f; 3、任职资格和胜任力的区别 4、胜任力冰山模型&#xff1a;职场能力的多维展现 4.1、冰山水面上的部分 4.2、冰山水面下的部分 4.3、深层的个人特质与价值观 5、如何平衡任职资格与胜任能力 6、结语 1、序言 在快速发展的I…...

什么是三层交换技术?与二层有什么区别?

什么是三层交换技术&#xff1f;让你的网络飞起来&#xff01; 一. 什么是三层交换技术&#xff1f;二. 工作原理三. 优点四. 应用场景五. 总结 前言 点个免费的赞和关注&#xff0c;有错误的地方请指出&#xff0c;看个人主页有惊喜。 作者&#xff1a;神的孩子都在歌唱 大家好…...

Linux+Docer 容器化部署之 Shell 语法入门篇 【Shell 替代】

&#x1f380;&#x1f380;Shell语法入门篇 系列篇 &#x1f380;&#x1f380; LinuxDocer 容器化部署之 Shell 语法入门篇 【准备阶段】LinuxDocer 容器化部署之 Shell 语法入门篇 【Shell变量】LinuxDocer 容器化部署之 Shell 语法入门篇 【Shell数组与函数】LinuxDocer 容…...

DeepSeek LLM(初代)阅读报告

概况 这个是deepseek发布的第一版模型对应的技术报告&#xff0c;模型发布于23年11月&#xff0c;本报告发布于24年1月。 模型有7B和67B两个版本。 虽然本报告中还没有用上后面V2/V3和R1中的关键技术例如MLA、MTP、GRPO&#xff0c;但是报告中已经指明了MoE、强化学习等未来…...

JAVA异步的TCP 通讯-服务端

一、服务端代码示例 import java.io.IOException; import java.net.InetSocketAddress; import java.nio.ByteBuffer; import java.nio.channels.AsynchronousServerSocketChannel; import java.nio.channels.AsynchronousSocketChannel; import java.nio.channels.Completion…...

高效协同,Tita 助力项目管理场景革新

在当今快节奏、高度竞争的商业环境中&#xff0c;企业面临着前所未有的挑战&#xff1a;如何在有限资源下迅速响应市场变化&#xff0c;确保多个项目的高效执行并达成战略目标&#xff1f;答案就在于优化项目集程管理。而在这个过程中&#xff0c;Tita项目管理产品以其独特的优…...

【AIGC魔童】DeepSeek v3提示词Prompt书写技巧

【AIGC魔童】DeepSeek v3提示词Prompt书写技巧 &#xff08;1&#xff09;基础通用公式&#xff08;适用80%场景&#xff09;&#xff08;2&#xff09;问题解决公式&#xff08;决策支持&#xff09;&#xff08;3&#xff09;创意生成公式&#xff08;4&#xff09;学习提升公…...

Steam创意工坊模组下载终极指南:告别平台限制,轻松获取海量游戏内容

Steam创意工坊模组下载终极指南&#xff1a;告别平台限制&#xff0c;轻松获取海量游戏内容 【免费下载链接】WorkshopDL WorkshopDL - The Best Steam Workshop Downloader 项目地址: https://gitcode.com/gh_mirrors/wo/WorkshopDL 还在为跨平台游戏无法下载Steam创意…...

GsonFormat深度解析:如何高效处理复杂JSON数据结构

GsonFormat深度解析&#xff1a;如何高效处理复杂JSON数据结构 【免费下载链接】GsonFormat 根据Gson库使用的要求,将JSONObject格式的String 解析成实体 项目地址: https://gitcode.com/gh_mirrors/gs/GsonFormat GsonFormat是一款专为Android Studio和IntelliJ IDEA设…...

SenseVoice-small部署教程:国产昇腾AI芯片Ascend CANN适配进展

SenseVoice-small部署教程&#xff1a;国产昇腾AI芯片Ascend CANN适配进展 1. 引言&#xff1a;当语音识别遇上国产算力 想象一下&#xff0c;你正在开发一款面向医疗场景的离线语音助手&#xff0c;需要实时将医生的口述病历转成文字。数据隐私要求极高&#xff0c;不能上传…...

Phi-3-Mini-128K高并发服务架构设计:负载均衡与自动扩缩容策略

Phi-3-Mini-128K高并发服务架构设计&#xff1a;负载均衡与自动扩缩容策略 你是不是也遇到过这种情况&#xff1f;自己部署的AI模型服务&#xff0c;平时用着挺好&#xff0c;一旦用户量稍微上来点&#xff0c;或者有人发了个长请求&#xff0c;服务就卡死甚至直接挂掉。然后就…...

有关数组的学习

数组的概念简介数组是编程中最基础也最常用的数据结构之一&#xff0c;理解它能帮你高效管理一组同类型的数据。1. 什么是数组&#xff1f;核心概念同类型&#xff1a;数组里的所有元素必须是相同的数据类型&#xff08;如全是 int 或全是 float&#xff09;。连续内存&#xf…...

Spring_couplet_generation 学术研究价值:作为NLP文本生成任务的基准

Spring_couplet_generation&#xff1a;一个衡量NLP模型中文创作能力的基准任务 春联&#xff0c;作为中国传统文化的独特载体&#xff0c;其创作要求严格遵循平仄、对仗和意境的规则。这看似简单的红纸黑字&#xff0c;背后却蕴含着对语言韵律、语义对偶和美学意境的综合考验…...

Conda镜像源配置的3个高级玩法与1个常见大坑:不止是换URL那么简单

Conda镜像源配置的3个高级玩法与1个常见大坑&#xff1a;不止是换URL那么简单 当你在团队协作中遇到TensorFlow版本冲突&#xff0c;或是Docker构建时因网络问题卡在Solving environment步骤&#xff0c;基础镜像源切换早已不够用。真正的高手会在.condarc里埋下这些彩蛋&#…...

CAPL调用DLL实现UDS 27服务加密算法:从C代码到Vector环境的完整打通

CAPL调用DLL实现UDS 27服务加密算法&#xff1a;从C代码到Vector环境的完整打通 在汽车电子测试领域&#xff0c;UDS&#xff08;Unified Diagnostic Services&#xff09;协议的安全访问&#xff08;27服务&#xff09;是保护ECU免受未授权访问的关键机制。当我们需要在Vector…...

如何在Linux内核中实现高性能exFAT文件系统读写支持?

如何在Linux内核中实现高性能exFAT文件系统读写支持&#xff1f; 【免费下载链接】exfat-nofuse Android ARM Linux non-fuse read/write kernel driver for exFat and VFat Android file systems 项目地址: https://gitcode.com/gh_mirrors/ex/exfat-nofuse 你是否曾经…...

地热模拟实战:当岩石遇上高温水流

Comsol地热开采-热流固耦合&#xff08;两个模型&#xff0c;均质和裂隙岩体&#xff09;附赠参考文献。地热开采就像给地球做"针灸"&#xff0c;要在不透水的花岗岩里造出人工热储层。最近用COMSOL折腾了两个典型模型&#xff1a;人畜无害的均质岩体和自带裂隙的破碎…...