C++案例

news2024/11/27 12:39:13

目录

一、while循环猜数组

二、 水仙花数

三、for循环敲桌子游戏 

四、9×9乘法表

五、一维数组--元素逆置 

六、冒泡排序

七、封装一个函数--利用冒泡排序,实现对整型数组的升序排序

八、结构体嵌套结构体

九、结构体排序 


一、while循环猜数组

说明:随机一个100以内的数字,共10次机会,每次猜测都反馈偏大还是偏小,猜对后显示所用次数,10次机会用完后结束。

#include<stdio.h>
#include<iostream>
#include <bits/stdc++.h>  // 万能
#include<string.h>
#include<ctype.h>         // 字符串字母大小写函数
#include<iomanip>         //  保留小数位数
#include<math.h>          // 数学
#include <time.h>         // 时间函数库
//clock_t clock(void)
using namespace std;
int main ()
{
	srand((unsigned int)time(NULL));
    int num = rand()%100+1;
    cout<<"哈哈,提前告诉你是:"<<num<<endl;
    int value;
    int count=0;
	cout<<"请输入你猜的数字:"<<endl;
    while(true)
    {
    	cin>>value;
    	if(value>num&&count<9)
    	{
    		count++;
    		cout<<"猜的大了,你还有"<<10-count<<"次机会"<<endl;
    	}
    	else if(value<num&&count<9)
    	{
    		count++;
    		cout<<"猜的小了,你还有"<<10-count<<"次机会"<<endl;
    	}
    	else if(value==num&&count<9)
    	{
    		count++;
    		cout<<"猜对了,用了"<<count<<"次机会"<<endl;
    		break;
    	}
    	else if(count==9||9-count==0)
		{
			cout<<"10次机会都用完了,你都没猜出来!!!!!!!"<<endl;
			break;
		}
    }
	return 0;
}

运行结果:

二、 水仙花数

 说明:

        水仙花数(Narcissistic number)也被称为超完全数字不变数(pluperfect digital invariant, PPDI)、自恋数、自幂数、阿姆斯壮数或阿姆斯特朗数(Armstrong number),水仙花数是指一个 3 位数,它的每个位上的数字的 3次幂之和等于它本身。例如:1^3 + 5^3+ 3^3 = 153。

         输出100~1000内的水仙花数。

#include<iostream>
using namespace std;
int main()
{
	int a,b,c;
	for(int i=100;i<1000;i++){
		a=i/100;
		b=i/10%10;
		c=i%10;
		if(a*a*a+b*b*b+c*c*c==i){
			cout<<i<<endl;
		}
	}
	return 0;
}

运行结果:

 do-while循环

#include<iostream>
using namespace std;
int main()
{
	int a,b,c;
	int num=100;
	do{
		a=num/100;
		b=num/10%10;
 	     c=num%10;
		if(a*a*a+b*b*b+c*c*c==num){
			cout<<num<<endl;
		}
		num++;
	}while(num<1000);
	return 0;
}

运行结果

三、for循环敲桌子游戏 

说明:0~100内的数字,逢到7的倍数(7,14,21...)或者含有7的数字(17,27,37...)必须用敲桌子代替。

#include<stdio.h>
#include<iostream>
#include <bits/stdc++.h>  // 万能
#include<string.h>
#include<ctype.h>         // 字符串字母大小写函数
#include<iomanip>         //  保留小数位数
#include<math.h>          // 数学
#include <time.h>         // 时间函数库
//clock_t clock(void)
using namespace std;
int main ()
{
	for(int i=0;i<100;i++)
	{
		if(i>10)
		{
			if(i%7==0 || i/10==7 || i%10==7)
			{
				cout<<"敲桌子"<<endl;
			}
			else
			{
				cout<<i<<endl;
			}
		}
		else
		{
			if(i%7==0)
			{
				cout<<"敲桌子"<<endl;
			}
			else
			{
				cout<<i<<endl;
			}
		}
	}
	return 0;
}

运行结果:

 

四、9×9乘法表

说明:就是我们从小背的9×9乘法表

#include<stdio.h>
#include<iostream>
#include <bits/stdc++.h>  // 万能
#include<string.h>
#include<ctype.h>         // 字符串字母大小写函数
#include<iomanip>         //  保留小数位数
#include<math.h>          // 数学
#include <time.h>         // 时间函数库
//clock_t clock(void)
using namespace std;
int main ()
{
	for(int i=1;i<10;i++)
	{
		for( int j=1;j<i+1;j++)
		{
			cout<<j<<"*"<<i<<"="<<j*i<<"\t";
		}
		cout<<endl;
	}
	return 0;
}

运行结果:

五、一维数组--元素逆置 

说明:将一维数组中的元素排序反转输出

#include<stdio.h>
#include<iostream>
using namespace std;
int main ()
{
	// 元素逆置
	int arr[10]={1,19,23,45,56,87,5,4,8,9};
	int start=0;
	int end=sizeof(arr)/sizeof(arr[0]);
	for(int i=0;i<=end/2;i++){
		for(int j=0;j<end;j++){
			cout<<arr[j]<<" ";
		}
		cout<<endl;
		int temp=arr[start+i];
		arr[start+i]=arr[end-1-i];
		arr[end-1-i]=temp;
	}
	cout<<endl;
	for(int i=0;i<end;i++){
		cout<<arr[i]<<" ";
	}
	cout<<endl;
	return 0;
}

运行结果:

 方法二:

#include<stdio.h>
#include<iostream>
using namespace std;
int main ()
{
	// 元素逆置
	int arr[10]={1,19,23,45,56,87,5,4,8,9};
	int start=0;
	int end=sizeof(arr)/sizeof(arr[0]);// 结束下标
	while(start<end-1){
		int temp=arr[start];
		arr[start]=arr[end-1];
		arr[end-1]=temp;
		
		start++;
		end--;
	}
	for(int i=0;i<10;i++){
		cout<<arr[i]<<" ";
	}
	cout<<endl;
	return 0;
}

运行结果:

 

六、冒泡排序

作用:最常用的排序算法,对数组内元素进行排序

过程:

  1. 比较相邻的元素。如果第一个比第二个大,就交换他们两个。
  2. 对每一对相邻元素做同样的工作,执行完毕后,找到第一个最大值。
  3. 重复以上的步骤,每次比较次数-1,直到不需要比较

图示:

 

示例:

#include<stdio.h>
#include<iostream>
using namespace std;
int main ()
{
	int arr[10]={2,4,0,5,8,7,1,3,9,6};
	for(int i=0;i<10;i++){
		for(int j=0;j<10-i-1;j++){
			
			if(arr[j]>arr[j+1]){
				int temp=arr[j];
				arr[j]=arr[j+1];
				arr[j+1]=temp;
			}
		}
		for(int k=0;k<10;k++){
				cout<<arr[k]<<" ";
			}
			cout<<endl;
	}
	cout<<endl;
	for(int i=0;i<10;i++){
		cout<<arr[i]<<" ";
	}
	cout<<endl;
	return 0;
}

 运行结果:

 

七、封装一个函数--利用冒泡排序,实现对整型数组的升序排序

#include<iostream>
#include<cmath>
using namespace std;
void bubbleSort(int *arr,int len)
{
	for(int i=0;i<len-1;i++){
		for(int j=0;j<len-1-i;j++){
			if(arr[j]>arr[j+1]){
				int temp=arr[j];
				arr[j]=arr[j+1];
				arr[j+1]=temp;
			}
		}
	}
}
void printArr(int *arr,int len)
{
	for(int i=0;i<len;i++){
		cout<<arr[i]<<" ";
	}
	cout<<endl;
}
int main()
{
	int arr[10]={4,3,6,9,1,2,10,8,7,5};
	// 数组长度
	int len=sizeof(arr)/sizeof(arr[0]);
	
	printArr(arr,len);
	bubbleSort(arr,len);
	printArr(arr,len);
	return 0;
}

运行结果:

 

八、结构体嵌套结构体

说明:三个老师的结构体数组,下面带五个学生结构体数组,给五个学生打随机分数

#include<iostream>
#include<stdio.h>
#include<iostream>
#include<string>
#include<ctype.h>
#include<math.h>
#include<time.h>
using namespace std;
struct students {
	string name;
	int score;
};
struct teachers {
	string name;
	struct students student[5];
};
// 给老师和学生赋值函数
void space(struct teachers teacher[], int len)
{
	string nameseed = "ABCDE";
	for (int i = 0; i < len; i++) {
		teacher[i].name = "Teacher_";
		teacher[i].name += nameseed[i];
		for (int j = 0; j < 5; j++) {
			teacher[i].student[j].name = "Student_";
			teacher[i].student[j].name += nameseed[j];

			int random = rand() % 61 + 40;
			teacher[i].student[j].score = random;
		}
	}
}
void printinfo(struct teachers teacher[], int len)
{
	for (int i = 0; i < len; i++) {
		cout << "老师的姓名: " << teacher[i].name << endl;
		for (int j = 0; j < 5; j++) {
			cout << "\t学生的姓名: " << teacher[i].student[j].name
				<< " 学生的考试分数:" << teacher[i].student[j].score << endl;
		}
	}
}
int main()
{
	// 随机种子
	srand((unsigned int)time(NULL));
	teachers teacher[3];

	int len = sizeof(teacher) / sizeof(teacher[0]);
	space(teacher, len);
	printinfo(teacher, len);
	return 0;
}

运行结果:

九、结构体排序 

说明:

设计一个英雄的结构体,包括成员姓名,年龄,性别;创建结构体数组,数组中存放5名英雄。

通过冒泡排序的算法,将数组中的英雄按照年龄进行升序排列,最终打印排序后的结果。

#include<iostream>
using namespace std;

// 英雄结构体
struct Hero
{
	string name;  // 姓名
	int age;	// 年龄
	string sex;  // 性别
};

// 通过冒泡排序进行排序,按照年龄进行升序排列
void bubbleSort(struct Hero heroArr[],int len)
{
	for(int i=0;i<len-1;i++){
		for(int j=0;j<len-i-1;j++){
			if(heroArr[j].age>heroArr[j+1].age){
				struct Hero temp =heroArr[j];
				heroArr[j]=heroArr[j+1];
				heroArr[j+1]=temp;
			}
		}
	}
}

// 输出函数
void printArr(struct Hero heroArr[],int len)
{
	for(int i=0;i<len;i++){
		cout<<"姓名:"<<heroArr[i].name<<"\t年龄:"<<heroArr[i].age<<"\t性别:"<<heroArr[i].sex<<endl;
	}
}
int main()
{
	struct Hero heroArr[5]={
		{"刘备",23,"男"},
		{"关羽",22,"男"},
		{"张飞",20,"男"},
		{"赵云",21,"男"},
		{"貂蝉",19,"女"},
	};
	int len=sizeof(heroArr)/sizeof(heroArr[0]);
	printArr(heroArr,len);
	
	// 排序
	bubbleSort(heroArr,len);
	
	cout<<endl<<"排序后的结果"<<endl;
	printArr(heroArr,len);
	return 0;
}

运行结果:

 

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

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

相关文章

经验总结:13 条自动化测试框架设计原则

1.代码规范 测试框架随着业务推进&#xff0c;必然会涉及代码的二次开发&#xff0c;所以代码编写应符合通用规范&#xff0c;代码命名符合业界标准&#xff0c;并且代码层次清晰。特别在大型项目、多人协作型项目中&#xff0c;如果代码没有良好的规范&#xff0c;那么整个框…

使用@Schedule注解实现定时任务,多线程执行定时任务,Cron表达式详解

Schedule注解实现定时任务&#xff0c;多线程执行定时任务&#xff0c;Cron表达式详解 使用Schedule注解实现定时任务Scheduled注解多线程执行定时任务Cron表达式Cron中的通配符 使用Schedule注解实现定时任务 1、首先&#xff0c;在项目启动类上添加 EnableScheduling 注解&am…

Vue CLI 全局事件总线 消息的订阅与发布

3.10. 全局事件总线&#xff08;GlobalEventBus&#xff09; 一种可以在任意组件间通信的方式&#xff0c;本质上就是一个对象&#xff0c;它必须满足以下条件 所有的组件对象都必须能看见他这个对象必须能够使用$on $emit $off方法去绑定、触发和解绑事件 使用步骤 定义全…

MySQL数据库基础 12

第十二章 MySQL数据类型 1. MySQL中的数据类型2. 整数类型2.1 类型介绍2.2 可选属性2.2.1 M2.2.2 UNSIGNED2.2.3 ZEROFILL 2.3 适用场景2.4 如何选择&#xff1f; 3. 浮点类型3.1 类型介绍3.2 数据精度说明3.3 精度误差说明 4. 定点数类型4.1 类型介绍 5. 位类型&#xff1a;BI…

CSS--Java EE

在前端的代码中&#xff0c;CSS 相关的代码写在什么位置呢&#xff1f; CSS 可以写在<style>标签中外部引入&#xff1a;输入 link: css写在 div 标签中 目录 一、选择器的种类 1 基础选择器 1.1 类选择器 1.2 id选择器 1.3 标签选择器 1.4 通用选择器 小结 2 …

Spring Security6 全新写法,大变样!

文章目录 1. WebSecurityConfigurerAdapter2. 使用 Lambda3. 自定义 JSON 登录3.1 自定义 JSON 登录3.1.1 自定义登录过滤器3.1.2 自定义登录接口 3.2 原因分析3.3 问题解决 Spring Security 在最近几个版本中配置的写法都有一些变化&#xff0c;很多常见的方法都废弃了&#x…

Java-IO流基础知识

目录 1.File类与路径知识 1.File类 2.Java中的路径知识 3.创建File类的实例 4.File类的方法使用 5.File类使用的注意点 2.IO流知识 1.IO流原理 2.文件的读入 3.read()的重载方法&#xff1a;难点 4.文件的写出 1.写出的说明 2.写出操作的具体步骤 5.文件的复制&am…

测试工程师如何有效的编写bug报告?

为什么要求有效的缺陷报告&#xff1f; 缺陷报告是测试过程中最重要的部分&#xff0c;对产品的质量有较大的影响&#xff0c;是测试人员价值的终极体现。好的缺陷报告可以减少研发部门的二次缺陷率、提高研发修改缺陷的速度、提高测试部门的信用度、增强测试和研发部门的协作…

Resful API是什么

文章目录 摘要1、RESTful API是什么&#xff1f;2、RESTful是什么&#xff1f;参考资料 摘要 RESTful是整个网络应用程序设计风格和开发方式。而RESTful API是其中API的设计风格。 1、RESTful API是什么&#xff1f; API接口在设计命名时&#xff0c;由版本/操作资源名称/操…

【Spring Boot 初识丨六】依赖注入

上一篇讲了 Spring Boot 的beans 本篇来讲一讲 依赖注入 Spring Boot 初识&#xff1a; 【Spring Boot 初识丨一】入门实战 【Spring Boot 初识丨二】maven 【Spring Boot 初识丨三】starter 【Spring Boot 初识丨四】主应用类 【Spring Boot 初识丨五】beans 依赖注入 一、 定…

攻防世界-Crypto-easychallenge

题目描述&#xff1a;将文件下载下来&#xff0c;只有一个pyc文件 1. 思路分析 先向chatgpt问下什么是pyc文件&#xff1a; OK&#xff0c;这里简单总结下&#xff1a; 1. pyc文件是python源码编译后的生成的二进制文件 2. 通过一些库可以逆向出pyc的源代码 那么我们需要做…

数组题目总结 -- 单调栈问题

目录 零. 单调栈一. Next Greater Element(单调栈问题模板)题目简述&#xff1a;思路和代码&#xff1a;I. 思路II. 代码 二. Next Warmer Weather题目简述&#xff1a;思路和代码&#xff1a;I. 思路II. 代码 三. Next Greater Elements&#xff08;循环数组&#xff09;题目简…

UG\NX二次开发 装配下的点坐标

文章作者:里海 来源网站:https://blog.csdn.net/WangPaiFeiXingYuan 简介: UF_CURVE_create_point 创建一个点 UF_CSYS_create_temp_csys 创建临时坐标系 以上两个函数都有一个点坐标输入,而且都是输入的绝对坐标系下的点坐标值。下面验证在装配下两个绝对坐标值具体指 “当…

【三维视觉】空间点集的最小包围盒计算

0 问题描述 假设有一个空间点集&#xff0c;不重合的点数有N个。 N1时&#xff0c;最小包围盒是一个点&#xff1a;中心为其本身&#xff0c;半径无穷小 N2时&#xff0c;最小包围盒是一个圆&#xff1a;中心为连线中点&#xff0c;半径为边长一半 N3时&#xff0c;不共线的三…

【C#】并行编程实战:任务并行性(上)

在 .NET 的初始版本中&#xff0c;我们只能依赖线程&#xff08;线程可以直接创建或者使用 ThreadPool 类创建&#xff09;。ThreadPool 类提供了一个托管抽象层&#xff0c;但是开发人员仍然需要依靠 Thread 类来进行更好的控制。而 Thread 类维护困难&#xff0c;且不可托管&…

优惠券超发问题该怎么测试?

在拼夕夕面试中&#xff0c;面试官问了一连串经典的问题&#xff1a;“优惠券库存是怎么扣减的&#xff1f;开发为了解决超发优惠券问题而设计的方案&#xff0c;你了解过吗&#xff1f;你又是如何测试的呢&#xff1f;” 当时听到这些问题还挺懵的&#xff0c;没遇到过超发问…

MidJourney教程02

1.主体内容&#xff1a;高数AI你需要画什么&#xff1f;比如说&#xff0c;一个男生在电脑前画画&#xff1f; 2.环境北京&#xff1a;例如给某些地点或者物件&#xff0c;比如桌子上&#xff0c;足球场&#xff0c;水面有倒影等&#xff1f; 3.构图镜头&#xff1a;比如说强…

springboot项目外卖管理 day07-功能补充

文章目录 前端补充功能1、历史订单功能1.1、梳理过程1.2历史订单展示1.3、效果展示 2、修改/删除地址2.1、回显数据梳理过程 代码展示 2.2、修改地址梳理过程代码 2.3、删除地址梳理过程代码展示 3、再来一单功能3.1、梳理过程3.2、具体实现思路&#xff08;参考一下当初我们怎…

Linux操作系统——第四章 进程间通信

目录 进程间通信介绍 进程间通信目的 进程间通信发展 进程间通信分类 管道 System V IPC POSIX IPC 管道 什么是管道 匿名管道 管道读写规则 管道特点 命名管道 创建一个命名管道 匿名管道与命名管道的区别 命名管道的打开规则 system V共享内存 共享内存示意…

【SpringBoot】解决依赖版本不一致报错问题

哈喽大家好&#xff0c;我是阿Q。今天在开发代码的过程中&#xff0c;由于手抖&#xff0c;不知道引入了什么包依赖&#xff0c;导致项目启动一直报错&#xff0c;特写本文来记录下解决问题的经过。 文章目录 问题描述报错信息如下报错描述 解决方法总结 问题描述 报错信息如下…