C/C++程序设计实验报告3 | 数组实验

本文整理自博主本科大一《C/C++程序设计》专业课的课内实验报告,适合C语言初学者们学习、练习。

编译器:gcc 10.3.0

----

注:

1.虽然课程名为C++程序设计,但实际上当时校内该课的内容大部分其实都是C语言,C++的元素最多可能只是体现在输入输出。

2.博主当时给出的实验代码可能并不是最优解,这里只是整理并未重编,因此各位前来学习的小伙伴们注意辨别。

目录

一、实验目的

二、实验内容

1、编写程序,键盘输入10个整数,对其进行冒泡排序。

2、输入一个整数,将其插入一个有序整型数组,保证插入后依然有序,并输出插入后的数组。有序数组的内容可以通过数组赋初值设定。

3、利用二维数组实现杨辉三角形的输出。 

4、删除字符串中某一个字符,如this is a boy.删除字符‘i’后,变成:ths s a boy.  

三、实验总结


一、实验目的

  1. 熟悉掌握一维数组的定义和使用。
  2. 掌握一维数组的常见算法(冒泡排序,有序数组的插入等)。
  3. 掌握利用字符数组存放字符串,以及字符串的常见操作(复制,比较,连接等)。
  4. 进一步学习调试程序。

二、实验内容

1、编写程序,键盘输入10个整数,对其进行冒泡排序。

 源代码:

#include<iostream>
#define ARR_SIZE 10
using namespace std;
//编写程序,键盘输入10个整数,对其进行冒泡排序。
int main(){int a[ARR_SIZE];int i,j;cout<<"please input 10 integer: "<<endl;for(i=0;i<ARR_SIZE;i++){cin>>a[i];}//升序排序int xch;for(i=0;i<ARR_SIZE-1;i++){xch = 0;for(j=0;j<ARR_SIZE-1-i;j++){int tmp;if(a[j]>a[j+1]){tmp=a[j];a[j]=a[j+1];a[j+1]=tmp;xch = 1;}}if(!xch){break;}}cout<<"After convert,the ordered array is: "<<endl;for(i=0;i<ARR_SIZE;i++){cout<<a[i]<<'\0';}return 0;
}

运行结果: 

2、输入一个整数,将其插入一个有序整型数组,保证插入后依然有序,并输出插入后的数组。有序数组的内容可以通过数组赋初值设定。

源代码:

#include<iostream>
#define ARR_SIZE 6
using namespace std;
//输入一个整数,将其插入一个有序整型数组,保证插入后依然有序,并输出插入后的数组。
//有序数组的内容可以通过数组赋初值设定。
int main(){int a[ARR_SIZE];int i,j;cout<<"please input 5 integer: "<<endl;for(i=0;i<ARR_SIZE-1;i++){cin>>a[i];}for(i=0;i<ARR_SIZE-2;i++){for(j=0;j<ARR_SIZE-2-i;j++){int tmp;if(a[j]>a[j+1]){tmp=a[j];a[j]=a[j+1];a[j+1]=tmp;}}}cout<<"After convert,the ordered array is: "<<endl;for(i=0;i<ARR_SIZE-1;i++){cout<<a[i]<<'\0';}cout<<endl;int n;cout<<"please enter one more integer:   ";cin>>n;for(i=ARR_SIZE-2;i>=0;i--){if(n<a[i]){a[i+1]=a[i];}else{a[i+1]=n;break;}}cout<<"the new array is:  "<<endl;for(i=0;i<ARR_SIZE;i++){cout<<a[i]<<'\t';}return 0;
}

运行结果: 

3、利用二维数组实现杨辉三角形的输出。 

源代码: 

#include<iostream>
#define NUMBER 15
using namespace std;
int main(){int a[NUMBER][NUMBER];int i,j;a[0][0]=1;a[1][0]=1;a[1][1]=1;cout<<a[0][0]<<endl;cout<<a[1][0]<<'\t'<<a[1][1]<<endl;for(i=2;i<NUMBER;i++){a[i][0]=1;a[i][i]=1;cout<<a[i][0]<<'\t';for(j=1;j<i;j++){a[i][j]=a[i-1][j-1]+a[i-1][j];cout<<a[i][j]<<'\t';}cout<<a[i][i]<<endl;}return 0;
}

运行结果: 

4、删除字符串中某一个字符,如this is a boy.删除字符‘i’后,变成:ths s a boy.  

说明:

  1. 通过字符数组实现  
  2. 字符串和待删除字符都通过键盘输入 

 源代码: 

#include<iostream>
#include<string.h>
using namespace std;//删除字符串中某一个字符,如this is a boy.删除字符‘i’后,变成:ths s a boy.  
//说明:1)通过字符数组实现  
//2)字符串和待删除字符都通过键盘输入
int main(){char str[101];char c;int i;gets(str);cout<<"您输入的字符串为:"<<endl;puts(str);cout<<"请输入您要删去的一个字符:"<<endl;cin>>c;char tmp=127;for(i=0;str[i]!='\0';i++){if(str[i]==c){str[i]=tmp;}}for(i=0;str[i]!='\0';i++){cout<<str[i];}
//		字符串中的第i个字符恰好是输入的字符
//	就把该字符替换成127
//	如果字符串中的第二个字符恰好是输入的字符
//	就把该字符替换成127
//	如果字符串中的第三个字符恰好是输入的字符
//	就把该字符替换成127return 0;
}

运行结果: 


三、实验总结

1.通过本次实验,我能够独立且顺畅地完成以上所有实验任务。

2.我熟悉掌握一维数组二维数组的定义和使用。

3.能掌握一维数组的常见算法(冒泡排序,有序数组的插入等)。

4.掌握利用字符数组存放字符串,以及字符串的常见操作(复制,比较,连接等)。

5.能够使用调试程序来debug寻找问题

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

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

相关文章

stm32学习——串口通信中的奇偶校验位

常用的校验算法有奇偶校验、校验和、CRC&#xff0c;还有LRC、BCC等不常用的校验算法。 以串口通讯中的奇校验为例&#xff0c;如果数据中1的个数为奇数&#xff0c;则奇校验位0&#xff0c;否则为1。 例如原始数据为&#xff1a;0001 0011&#xff0c;数据中1的个数&#xf…

HarmonyOS NEXT星河版——还是Android上套个壳吗?

这真的是我2024年听过最搞笑的话,就在前几天&#xff0c;居然还有人说鸿蒙OS就是安卓套个壳&#xff0c;简直无语&#xff01; 你敢相信&#xff1f;就在前几天&#xff0c;我还听到有人说&#xff1a;鸿蒙os就是安卓上套一个壳。唉&#xff0c;我真是无语了。 哎&#xff0c…

如何在Windows11上通过PHPStudy小皮面板快速大家MySQL环境

首先&#xff0c;下载小皮面板&#xff1a;https://www.xp.cn/ 点Windows版本&#xff1a; 开始下载&#xff1a; 或者直接从百度网盘下载&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1gcaiK54yW7DcrYld22V06A 提取码&#xff1a;4oj8 –来自百度网盘超级会员V9…

【力扣】141. 环形链表

题目描述 给你一个链表的头节点 head &#xff0c;判断链表中是否有环。 如果链表中有某个节点&#xff0c;可以通过连续跟踪 next 指针再次到达&#xff0c;则链表中存在环。 为了表示给定链表中的环&#xff0c;评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置&a…

Docker配置Nginx、tomcat、elasticsearch

配置nginx 需要先pull下来 #启动nginx -d 表示后台运行 -p 表示暴露端口&#xff0c;将80暴露为3344 [rootiZf8zhsqf64x47n1tpdy6oZ home]# docker run -d -p:3344:80 nginx 5dd62cea7681975d37d1a9867bc9776de0206519f624b461346ac83025656642 [rootiZf8zhsqf64x47n1tpdy6oZ…

Spark-Transformation以及Action开发实战

文章目录 创建RDDTransformation以及ActionTransformation开发Action开发RDD持久化共享变量创建RDD RDD是Spark的编程核心,在进行Spark编程是,首要任务就是创建一个初始的RDDSpark提供三种创建RDD方式:集合、本地文件、HDFS文件 集合:主要用于本地测试,在实际部署到集群运…

51-31 VastGaussian,3D高斯大型场景重建

2024 年 2 月&#xff0c;清华大学、华为和中科院联合发布的 VastGaussian 模型&#xff0c;实现了基于 3D Gaussian Splatting 进行大型场景高保真重建和实时渲染。 Abstract 现有基于NeRF大型场景重建方法&#xff0c;往往在视觉质量和渲染速度方面存在局限性。虽然最近 3D…

C++第五弹---类与对象(二)

✨个人主页&#xff1a; 熬夜学编程的小林 &#x1f497;系列专栏&#xff1a; 【C语言详解】 【数据结构详解】【C详解】 类与对象 1、类对象模型 1.1、如何计算类对象的大小 1.2、类对象的存储方式猜测 1.3、结构体内存对齐规则 2、this指针 2.1、this指针的引出 2.2…

Cesium 获取 3dtileset的包围盒各顶点坐标

Cesium 获取 3dtileset的包围盒各顶点坐标 /*** 获取 3dtileset的包围盒各顶点坐标, z 方向取高度最低的位置* param {*} tileset* param {*} options* returns* ref https://blog.csdn.net/STANDBYF/article/details/135012273* ref https://community.cesium.com/t/accurate-…

双指针算法_移动零_

题目&#xff1a; 给定一个数组 num &#xff0c;编写一个函数将数组内部的数字0都移动到数组的末尾&#xff0c;同时保持非零元素的相对顺序&#xff01; 同时不能通过复制数组&#xff0c;开辟新的数组空间的情况下原地对数组进行操作 示例&#xff1a; 本题的原理&#x…

【New Release】PostgreSQL小版本(16.2, 15.6, 14.11, 13.14,12.18) 发布了

前言 PostgreSQL遵循小版本的发布规律&#xff0c;这一个季度的小版本又发布了。可以算作是2024年第一个季度的版本发布。如果总结其规律&#xff1a;大概就是2月、5月、8月、11月的样子。通常因为11月配合大版本的发布&#xff0c;它是起点&#xff0c;也有可能就是终点。起点…

Docker 中 Nginx 反向代理

本文主角&#xff1a;Nginx Proxy Manager 。 使用docker安装Nginx Proxy Manager。 1、找到C:\Windows\System32\drivers\etc下的hosts文件&#xff0c;添加 “域名 IP"即可。 使用vscode编辑文件&#xff0c;保存时会提示用管理员权限保存即可。 2、Nginx Proxy Mana…

力扣大厂热门面试算法题 36-38

36. 有效的数独&#xff0c;37. 解数独&#xff0c;38. 外观数列&#xff0c;每题做详细思路梳理&#xff0c;配套Python&Java双语代码&#xff0c; 2024.03.16 可通过leetcode所有测试用例。 目录 36. 有效的数独 解题思路 完整代码 Java Python 37. 解数独 解题思…

nmcli --help(nmcli -h)nmcli文档、nmcli手册

文章目录 nmcli --helpOPTION解释OBJECT解释1. g[eneral]&#xff1a;查看NetworkManager的状态2. n[etworking]&#xff1a;启用或禁用网络3. r[adio]&#xff1a;查看无线电状态&#xff08;例如&#xff0c;Wi-Fi&#xff09;4. c[onnection]&#xff1a;列出所有的网络连接…

【上海大学计算机组成原理实验报告】一、数据传送实验

一、实验目的 了解实验仪器数据总线的控制方式。掌握数据传送的基本原理。掌握各寄存器的结构、工作原理及其控制方法。 二、实验原理 根据实验指导书的相关内容&#xff0c;数据输入到寄存器的过程是先通过指令选择源和目标&#xff0c;再通过数据总线来传送数据&#xff0…

Midjourney绘图欣赏系列(九)

Midjourney介绍 Midjourney 是生成式人工智能的一个很好的例子&#xff0c;它根据文本提示创建图像。它与 Dall-E 和 Stable Diffusion 一起成为最流行的 AI 艺术创作工具之一。与竞争对手不同&#xff0c;Midjourney 是自筹资金且闭源的&#xff0c;因此确切了解其幕后内容尚不…

VS Code上,QT基于cmake,qmake的构建方法(非常详细)

VS Code上,QT基于cmake&#xff0c;qmake的构建方法 1 前言2 QT基于cmake的构建方法2.1 VS Code关键插件安装2.2 系统环境变量配置2.3 VS Code中&#xff0c;环境变量配置2.4 Cmake新建一个新的Porject 3 QT基于qmake的构建方法 1 前言 最近&#xff0c;由于认证了github的学生…

代码贴--动态顺序表--数据结构

本博客将记录操作系统中的动态顺序表的相关代码 头文件&#xff08;SeList.h&#xff09; #pragma once #include<stdio.h> #include<string.h> #include<stdlib.h> #include<assert.h> typedef int SQDataType; //动态顺序表typedef struct SeqList…

2024年Vue3 面试题小总结

Vue3 面试题小总结 1. OptionsAPI 与 CompositionAPI 的区别&#xff1f; OptionsAPI&#xff1a; 选项式API&#xff0c;通过定义data、computed、watch、method等属性与方法&#xff0c;共同处理页面逻辑&#xff1b;缺点&#xff1a; 当组件变得复杂的时候&#xff0c;导致…

websocket 使用示例

websocket 使用示例 前言html中使用vue3中使用1、安装websocket依赖2、代码 vue2中使用1、安装websocket依赖2、代码 前言 即时通讯webSocket 的使用 html中使用 以下是一个简单的 HTML 页面示例&#xff0c;它连接到 WebSocket 服务器并包含一个文本框、一个发送按钮以及 …