C/C++程序设计实验报告2 | 循环结构实验

本文整理自博主学校大一(2021级)C/C++专业课的课程实验报告,适合学弟妹或C语言初学者入门C语言学习、练习。

编译器:gcc 10.3.0

----

注:

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

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

目录

一、实验目的

二、实验内容

1、输入一行字符,分别统计出其中的英文字母、空格、数字和其它字符的个数。

2、任意输入若干个数,判断这些数是否是素数,若是则输出这个数。

3、输入一个n,表示下面两个菱形图形(实心和空心)的行数(或者一半行数,如下图为n=3),利用循环语句实现输出。

实心菱形

空心菱形

三、实验总结


一、实验目的

  1. 熟悉掌握用while语句,do-while语句和for语句实现循环的方法。
  2. 掌握在程序设计中用循环的方法实现一些常用算法(如穷举、迭代、递推等)。
  3. 掌握二重循环的执行过程。
  4. 进一步学习调试程序。

二、实验内容

1、输入一行字符,分别统计出其中的英文字母、空格、数字和其它字符的个数。

源代码:

#include<iostream>
using namespace std;
int main()
{char c;int letters=0;int numbers=0;int space=0;int others=0;//	输入一行字符,cout << "please input some characters:>" << endl;c=getchar();//	分别统计出其中和  其它字符的个数。while(c != '\n'){if((c>='a' && c<='z') || (c>='A' && c<='Z')){letters++;//英文字母}else if(c>='0' && c<='9'){numbers++;//数字}else if(c==' '){space++;//空格}else{others++;}c=getchar();}cout << "letters: "<< letters << endl;cout << "numbers: "<< numbers << endl;cout << "space: "<< space << endl;cout << "others: "<< others << endl;//	输入一个字符,
//	如果是换行
//	不干了
//	否则计数英文字母,计数空格,计数数字,计数其他字符
//	输入一个字符,
//	如果是换行
//	不干了
//	否则计数英文字母,计数空格,计数数字,计数其他字符
//	输入一个字符,
//	如果是换行
//	不干了
//	否则计数英文字母,计数空格,计数数字,计数其他字符return 0;
}

运行结果:

2、任意输入若干个数,判断这些数是否是素数,若是则输出这个数。

说明:

1)一行输出5个数   

2)循环语句不限

源代码:

#include<stdio.h>
int main()
{//	任意输入若干个数,
//	判断这些数是否是素数,
//	若是
//	则输出这个数.一行输出5个数int a[100];int num=0;int i=0;char b;//	输入一个数do {scanf("%d%c",&a[i],&b);i++;}while(b != 10);  //输入若干个数直到换行结束	//	素数判断for(int j=0;j<i;j++){if(a[j]>1){	int end = a[j]/2;int k;for(k=2;k<=end;k++){if(a[j]%k==0){ break;}}if(k>end){printf("%d",a[j]);num++;if(num%5==0){printf("\n");}else{printf(" ");}			}}else{printf("error");}}//	if(a[i]是素数)
//	cout
//	if(这个素数的num%5==0)
//	\n
//	else
//	cout spacereturn 0;	
}

3、输入一个n,表示下面两个菱形图形(实心和空心)的行数(或者一半行数,如下图为n=3),利用循环语句实现输出。

说明:此题相当于两个题,要打印出两个图。

提示:第一个菱形分析*号个数和规律;第二题分析*出现位置及变化规律。

思路详解传送门:循环嵌套思路详解 | 一个“在盒子里过家家”的算法 -- 以冒泡排序与打印菱形为例_c++循环嵌套经典案例分析-CSDN博客

实心菱形

源代码:

#include<iostream>
using namespace std;
int main()
{//	i是行数//	n=5的时候
//	第1行 2个空格  1个*
//	第2行 1个空格  3个*
//	第3行 0个空格  5个*
//	
//	第i行 n+1-i个空格  2*i-1个*int input_line;int i,j,k;	//遍历用的变量cout << "please input a number:>  "<< endl << endl;cin >> input_line;//	n是行数的一半 n+1是中间行int n = (input_line-1)/2; //	输出上半段for(i=1; i<=n+1; i++){//一行里面 先输出n+1-i个空格 for(j=1;j<=n+1-i;j++){cout << " ";}//再输出2*i-1个*for(k=1;k<=2*i-1;k++){cout << "*";}//再换行cout << endl;}//	输出下半段-- 和上面完全一样,就是行数要少一行for(i=n;i>=1;i--){//先输出n+1-i 个空格for(j=1;j<=n+1-i;j++){cout << " ";}//再输出2*i-1个*for(k=1;k<=2*i-1;k++){cout << "*";}cout << endl;}return 0;
}

运行结果: 

空心菱形

源代码:

#include <iostream>
using namespace std;
int main()
{//	i是行数//	n是中间行int i,j,n,input;cout << "please input a number:>  "<< endl << endl;cin>>input;n = input/2;//第一行 n个空格 1个*for(i=1;i<=n;i++){cout<<" ";}cout<<"*"<<endl;//2到n行for(i=1; i<=n; i++){//一行里面先输出n-i个空格for(j=1; j<=n-i; j++){cout<<" ";}//然后输出1个* for(j=1; j<=2; j++){cout<<"*";for(j=1; j<=2*i-1; j++)//*+空格+*的长度{cout<<" ";}cout<<"*";}cout<<endl;}//下半部分for(i=n-1; i>=1; i--){for(j=1; j<=n-i; j++){cout<<" ";}for(j=1; j<=2; j++){cout<<"*";for(j=1; j<=2*i-1; j++){cout<<" ";}cout<<"*";}cout<<endl;}//最后一行 和第一行一样for(i=1;i<=n;i++)cout<<" ";cout<<"*"<<endl;return 0;
}

运行结果:


三、实验总结

  1. 1、增加了while语句do-while语句和for语句使用的熟练度。基本能够根据需求判断循环的使用情况以及三种不同循环语句的选择。
  2. 2、掌握在程序设计中用循环的方法实现一些常用算法。可以初步地读懂代码以及运用。
  3. 3、掌握二重循环的执行过程以及进一步学习程序调试

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

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

相关文章

ElasticSearch学习篇10_Lucene数据存储之BKD动态磁盘树

前言 基础的数据结构如二叉树衍生的的平衡二叉搜索树通过左旋右旋调整树的平衡维护数据&#xff0c;靠着二分算法能满足一维度数据的logN时间复杂度的近似搜索。对于大规模多维度数据近似搜索&#xff0c;Lucene采用一种BKD结构&#xff0c;该结构能很好的空间利用率和性能。 …

查找jdk的安装

方式1&#xff1a;which或者where java which java -- linux where java --windows 方式2: echo 使用echo 打印配置的java home环境变量 echo $JAVA_HOME$ --linux echo %JAVA_HOME% --windows 方式3&#xff1a;使用ls -lrt -a &#xff1a;显示所有文件即目录…

沃通SSL证书证券行业应用案例

金融证券行业作为现代经济体系中的重要组成部分&#xff0c;其安全性直接关系到国家经济的稳定和广大投资者的利益。沃通SSL证书基于密码技术保护传输数据的机密性、完整性&#xff0c;通过权威身份认证确保服务器身份真实性&#xff0c;已持续为众多知名证券行业客户提供服务&…

微信小程序之vue按钮切换内容变化

效果图如下&#xff1b; 上代码 <template><view class"content"><view class"searchDiv"><view class"paytab"><view class"buttab" v-for"(t,index) in tabList" :key"index" clic…

Python小设计

1. 五个PPT上的界面打印【print、input函数】 &#xff08;1&#xff09;英雄商城登陆界面 print(英雄联盟商城登录界面 ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~1. 用户登录2. 新用户注册3. 退出系统 ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~…

【Numpy】基础学习:一文了解np.expand_dims的作用、用法

【Numpy】基础学习&#xff1a;一文了解np.expand_dims的作用、用法 &#x1f308; 个人主页&#xff1a;高斯小哥 &#x1f525; 高质量专栏&#xff1a;Matplotlib之旅&#xff1a;零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入门教程&#x1f448; 希望…

MySQL用法---MySQL Workbench创建数据库和表

1. 连接数据库 打开软件&#xff0c;点击左下角卡片&#xff0c;输入设置的数据库密码&#xff0c;勾选单选框 2. 了解主页面的组成部分 3. 创建数据库 先点击工具栏的创建按钮 再输入数据库名称 点击 Apply 创建 4. 创建数据表 展开数据库&#xff0c;在Tables上右键&…

docker学习(十四)docker搭建私服

docker私服搭建&#xff0c;配置域名访问&#xff0c;设置访问密码 启动registry docker run -d \-p 5000:5000 \-v /opt/data/registry:/var/lib/registry \registrydocker pull hello-world docker tag hello-world 127.0.0.1:5000/hello-world docker push 127.0.0.1:5000…

【2024-完整版】python爬虫 批量查询自己所有CSDN文章的质量分:附整个实现流程

【2024】批量查询CSDN文章质量分 写在最前面一、分析获取步骤二、获取文章列表1. 前期准备2. 获取文章的接口3. 接口测试&#xff08;更新重点&#xff09; 三、查询质量分1. 前期准备2. 获取文章的接口3. 接口测试 四、python代码实现1. 分步实现2. 批量获取文章信息3. 从exce…

WPF —— Calendar日历控件详解

1&#xff1a; Calendar的简介 日历控件用于创建可视日历&#xff0c;让用户选择日期并在选择日期时触发事件。 DisplayMode 用来调整日历显示模式&#xff0c;分为Month、Year 和Decade 三种。如下是None 2&#xff1a;Calendar控件常用的属性 SelectionMode 选中日历的类…

深入理解指针——C语言

目录 1. 内存和地址 2. 指针变量和地址 3. 指针变量类型的意义 4. const修饰指针 5. 指针运算 6. 野指针 7. assert断言 8. 指针的使用和传址调用 9. 数组名的理解 10. 使用指针访问数组 11. 一维数组传参的本质 12. 冒泡排序 13. 二级指针 14. 指针数组 15. 指…

如何在Windows系统安装Node.js环境并制作html页面发布公网远程访问?

文章目录 前言1.安装Node.js环境2.创建node.js服务3. 访问node.js 服务4.内网穿透4.1 安装配置cpolar内网穿透4.2 创建隧道映射本地端口 5.固定公网地址 前言 Node.js 是能够在服务器端运行 JavaScript 的开放源代码、跨平台运行环境。Node.js 由 OpenJS Foundation&#xff0…

创建一个Django项目

安装python、pip、Django 找不到python命令&#xff0c;请将C:\Python33、C:\Python33\Lib、C:\Python33\libs三个地址加入环境变量。 get-pip.py下载&#xff1a;https://bootstrap.pypa.io/ django版本需要与python版本对应&#xff0c;并将C:\Python33\Scripts加入环境变…

CNC机加工引入复合机器人可以提高生产效率,降低成本

CNC加工企业在过去依赖大量的人工来完成生产线上的各项任务&#xff0c;包括CNC机床的上下料、物料搬运以及部分装配工作。然而&#xff0c;随着产能需求的不断增长和人工成本的持续上升&#xff0c;企业逐渐意识到自动化升级的重要性与迫切性。 面临的挑战与需求&#xff1a; …

Layer1 新星 Partisia Blockchain 撑起隐私保护伞,助你无忧加密交易!

信息纷繁芜杂、真假掺半的 Web3 行业&#xff0c;如何才能更快、更安全地实现快速交易&#xff1f;Partisia Blockchain 或许交出了一份满意的技术答卷。致力于隐私保护、互操作性和可持续创新的 Layer1 区块链新星&#xff0c;Partisia Blockchain 以安全公平标榜&#xff0c;…

VScode(Python)使用ssh远程开发(Linux系统树莓派)时,配置falke8和yapf总结避坑!最详细,一步到位!

写在前面&#xff1a;在Windows系统下使用VScode时可以很舒服的使用flake8和yapf&#xff0c;但是在ssh远程开发树莓派时&#xff0c;我却用不了&#xff0c;总是出现问题。当时我就开始了漫长的探索求知之路。中间也请教过许多大佬&#xff0c;但是他们就讲“能用不就行了&…

Jeff Bezos的投资正开始见效

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

Vue+wow.js+animate.css实现动画效果

1.介绍 Wow.js 是一个轻量级的 JavaScript 库&#xff0c;用于在网页滚动时实现动画效果。基于 CSS3 的动画库 Animate.css&#xff0c;并通过触发 CSS 动画类来创建各种引人注目的过渡和动画效果。 使用 Wow.js&#xff0c;可以很容易地为网页中的元素添加动画效果&#xff…

MVC架构模式学习笔记(动力节点老杜2022)

GitHub代码笔记&#xff1a;laodu-mvc: 动力节点学习javaweb中的mvc笔记。 文章目录 1.视频链接 2.不使用MVC架构模式程序存在的缺陷 3.MVC架构模式理论基础 4.JavaEE设计模式-DAO模式 5.pojo & bean & domain 6.业务层抽取以及业务类实现 7.控制层 8.MVC架构模式与三…

ElasticSearch之Nested对象

写在前面 本文看下es的nested嵌套对象相关内容。 1&#xff1a;es用了啥范式&#xff1f; 在关系型数据库中定义了6大数据库范式,即1&#xff0c;2&#xff0c;3&#xff0c;BC&#xff0c;4&#xff0c;5的NF&#xff08;normal form&#xff09;,分别如下&#xff1a; 1N…