C基础寒假练习(8)

news/2025/2/5 18:49:20/

一、终端输入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;
}


http://www.ppmy.cn/news/1569573.html

相关文章

个人c项目 java项目解释

1. 测试环境与方法 中文&#xff1a; 本地测试环境&#xff1a;可以在一台配置中等的电脑上构建一个测试环境&#xff0c;利用现成的大词库数据&#xff08;例如英文词典或自定义数据集&#xff09;来构建 Trie。使用 C 语言的编译器&#xff08;例如 gcc&#xff09;编译项目&…

【免费】2007-2019年各省科技支出占一般公共预算支出的比重数据

2007-2019年各省科技支出占一般公共预算支出的比重数据 1、时间&#xff1a;2007-2019年 2、来源&#xff1a;国家统计局、统计年鉴 3、指标&#xff1a;行政区划代码、地区名称、年份、科技支出占一般公共预算支出的比重 4、范围&#xff1a;31省 5、指标解释&#xff1a…

《深度揭秘LDA:开启人工智能降维与分类优化的大门》

在当今人工智能蓬勃发展的时代&#xff0c;数据成为了驱动技术进步的核心要素。随着数据采集和存储技术的飞速发展&#xff0c;我们所面临的数据量不仅日益庞大&#xff0c;其维度也愈发复杂。高维数据虽然蕴含着丰富的信息&#xff0c;但却给机器学习算法带来了一系列严峻的挑…

数字每k位标注逗号—c++

题目描述 给定一个很长的数字&#xff0c;希望你每 k 位标注一个逗号&#xff0c;然后输出最终的数字。 输入描述 第一行输入两个正整数 n,k&#xff0c;表示数字的长度和 k 的值。 输出描述 一个数字&#xff0c;表示加过逗号之后的数字 数据范围 对于 20% 的数据&#…

常见的 Vue.js 组件库:Element Plus, Vuetify, Quasar

Vue.js 常见的 Vue.js 组件库&#xff1a;Element Plus, Vuetify, Quasar 今天我们来聊聊 Vue.js 中一些非常常见的组件库&#xff0c;它们能帮你快速构建出美观、功能强大的应用界面。今天我们介绍的是三个非常流行的 Vue.js 组件库&#xff1a;Element Plus、Vuetify 和 Qua…

python学opencv|读取图像(五十六)使用cv2.GaussianBlur()函数实现图像像素高斯滤波处理

【1】引言 前序学习了均值滤波和中值滤波&#xff0c;对图像的滤波处理有了基础认知&#xff0c;相关文章链接为&#xff1a; python学opencv|读取图像&#xff08;五十四&#xff09;使用cv2.blur()函数实现图像像素均值处理-CSDN博客 python学opencv|读取图像&#xff08;…

Redis 数据备份与恢复

Redis 数据备份与恢复 引言 Redis 是一款高性能的键值对存储系统,广泛应用于缓存、消息队列、分布式锁等领域。为了保证数据的安全性和可靠性,定期对 Redis 数据进行备份与恢复是至关重要的。本文将详细介绍 Redis 数据备份与恢复的方法,帮助您更好地管理和维护 Redis 数据…

计算机视觉:撕裂时空的视觉算法革命狂潮

目录 ​编辑 一本篇介绍&#xff1a; 二计算机视觉基础&#xff1a; 2.1 图像表示与处理&#xff1a; 2.1.1 图像的基本概念&#xff1a; 2.1.2 图像读取与显示: 2.1.3 图像滤波: 2.2 特征提取与描述: 2.2.1 特征提取的概念: 2.2.2 角点检测: 2.2.3 特征描述: 三、…