c++0305习题

一、求下面表达式的值

1.0

2.-1

3.1

4.(1)1 (2)3.2  (3)0  (4)7.0

5.(1)0(2)300.005(3)0(4)1(5)1

二、将100元兑换成1元、2元、5元纸币,保证1元、2元、5元纸币的数量至少为1,将所有兑换方法输出,并输出总共有多少种兑换方法?

#include <iostream>
using namespace std;

int main() {
	int count = 0; // 初始化兑换方案计数器为0

	// 三重循环,分别遍历1元、2元、5元纸币的数量
	for (int i = 1; i <= 100; i++) { // 1元纸币数量从1到100循环
		for (int j = 1; j <= 50; j++) { // 2元纸币数量从1到50循环
			for (int k = 1; k <= 20; k++) { // 5元纸币数量从1到20循环
				if (i + 2 * j + 5 * k == 100) { // 判断当前组合是否能兑换成100元
					count++; // 如果能兑换成功,计数器加1
					cout << "1元:" << i << "张,2元:" << j << "张,5元:" << k << "张" << endl; // 输出当前兑换方案
				}
			}
		}
	}

	cout << "总共有 " << count << " 种兑换方法。" << endl; // 输出总共有多少种兑换方法
	return 0;
}

扩展1.(简约版):

 扩展2.(不考虑所有钱币都存在版):

三. 公鸡5文钱一只,母鸡3文钱一只,小鸡3只一文钱,用100文钱买一百只鸡,其中公鸡,母鸡,小鸡都必须要有,问公鸡,母鸡,小鸡要买多少只刚好凑足100文钱。并输出总共有多少种购买方法。

#include <iostream>
using namespace std;

int main() {
    int count = 0;

    for (int i = 1; i <= 20; i++) {
        for (int j = 1; j <= 33; j++) {
            int k = 100 - i - j;
            if (5 * i + 3 * j + k / 3 == 100 && k % 3 == 0) {
                count++;
                cout << "公鸡:" << i << " 只,母鸡:" << j << " 只,小鸡:" << k << " 只" << endl;
            }
        }
    }

    cout << "总共有 " << count << " 种购买方法。" << endl;

    return 0;
}

四, 输入一些字符,直接输入#号结束,将输入的字符大写转换为小写,小写转换为大写,如果是数字则不操作,分别统计完成转换后大写字母小写字母及数字个数。

#include <iostream>
#include <cctype>
using namespace std;

int main() {
    char input;
    int daCount = 0, xiaoCount = 0, shuziCount = 0;

    cout << "请输入一些字符,以#号结束:" << endl;

    while (cin >> input && input != '#') {
        if (isupper(input)) {
            cout << "转换后:" << static_cast<char>(tolower(input))<<endl ;
            xiaoCount++;
        }
        else if (islower(input)) {
            cout << "转换后:" << static_cast<char>(toupper(input))<<endl ;
            daCount++;
        }
        else if (isdigit(input)) {
            cout << "数字不做转换:" << input<<endl
 ;
            shuziCount++;
        }
    }

    cout << "大写字母个数:" << daCount << endl;
    cout << "小写字母个数:" << xiaoCount << endl;
    cout << "数字个数:" << shuziCount << endl;

    return 0;
}

//while (cin >> input && input != '#') { ... }:这是一个while循环,用于持续地从标准输入读取字符,直到输入为#为止。
// cin >> input表示从标准输入流(通常是键盘)读取一个字符,并将其存储在变量input中。
// input != '#'是一个条件判断,只要读取到的字符不是#,循环就会继续执行。
//if (isupper(input)) { ... }:这是一个if条件语句,用于检查变量input是否包含一个大写字母。
// isupper是一个标准库函数,用于检测传入的字符是否为大写字母。如果是大写字母,则执行大括号{ ... }内的代码。

//cout << "转换后:" << static_cast<char>(tolower(input)) << endl; :这行代码做了几件事情:
//tolower(input):调用tolower函数,将input中的大写字母转换为小写字母。如果input不是大写字母,tolower会返回input本身。
//static_cast<char>(...):这是一个类型转换,确保tolower函数的返回值被正确地解释为字符类型。
// 虽然在这个特定的例子中可能不是必需的(因为tolower通常返回int,但可以直接赋值给char),但在更一般的情况下,类型转换可以确保类型的正确性。
//cout << "转换后:" << ... << endl; :输出转换后的字符到标准输出流(通常是屏幕)。
// "转换后:"是一个字符串字面量,用于在输出中标识转换后的字符。endl是一个操纵符,用于插入一个新行,并刷新输出缓冲区。
//lowercaseCount++; :这行代码增加lowercaseCount变量的值。注意,虽然变量名是lowercaseCount,但实际上这里是在计数大写字母被转换为小写字母的次数。
//总结:这段代码的主要功能是读取用户输入的字符,如果字符是大写字母,就输出转换后的小写字母,并增加一个计数器
//这个过程会持续进行,直到用户输入#字符为止。

简单版代码:

#include<iostream>
#include<cctype>
using namespace std;
int main() {
	char input;
	int daxiecount=0, xiaoxiecount=0, shuzicount = 0;
	cout << "请输入一些字符,以#号结束:" << endl;
	while (cin>>input&&input!='#') {
		if (isupper(input)) {
			input = tolower(input);
			xiaoxiecount++;
		}
		else if (islower(input)) {
			input = toupper(input);
			xiaoxiecount++;
		}
		else {
			shuzicount++;
		}
		cout << input;
	}
	cout << endl;
	cout << "大写个数" << daxiecount << ' ' << "小写个数" << xiaoxiecount << ' ' << "数字个数" << shuzicount << ' ' << endl;
	return 0;
}

五、一个球从100高度落下,每次反弹原高度的一半,求第10次落地时共经过的路程。 

//5.一个球从100高度落下,每次反弹原高度的一半,求第10次落地时共经过的路程。
#include <iostream>
using namespace std;

int main() {
    double height = 100.0;
    double distance = 100.0; // 第一次落地的路程
    for (int i = 2; i <= 10; i++) {
        height /= 2; // 反弹的高度
        distance += height * 2; // 一次上升和下降的距离
    }

    cout << "第10次落地时共经过的路程为:" << distance << endl;

    return 0;
}

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

[力扣 Hot100]Day49 二叉树的最近公共祖先

题目描述 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为&#xff1a;“对于有根树 T 的两个节点 p、q&#xff0c;最近公共祖先表示为一个节点 x&#xff0c;满足 x 是 p、q 的祖先且 x 的深度尽可能大&#xff08;一个节点也可以…

服务器与文件内数据的 LENGTH_IN_CHAR 参数不匹配

导入数据库数据的时候出现这个 怎么解决&#xff1a;重建数据库实例 下面是达梦的工具 使用DM数据库配置助手 新建、删除实例 新建实例时的配置需要注意的选项 主要是字符集、大小写、和VARCHAR类型以字符为单位 出现【LENGTH_IN_CHAR 参数不匹配】勾选【VARCHAR类型以字…

NUC980开发板CAN开发笔记

一、内核开启CAN CAN 设置 NUC980 系列带有2个CAN(Controller Area Network), 可以分别独立设置。 请按以下的说明来使能CAN功能. 每个CAN可以单独的开关. CAN0有多组管脚可以选择, 需要一并设置。 使用者也可以设置CAN的唤醒功能。步骤如下&#xff1a; 进入 NUC980-linux-4.…

Linux系统安装及简单操作

目录 一、Linux系统安装 二、Linux系统启动 三、Linux系统本地登录 四、Linux系统操作方式 五、Linux的七种运行级别&#xff08;runlevel&#xff09; 六、shell 七、命令 一、Linux系统安装 场景1&#xff1a;直接通过光盘安装到硬件上&#xff08;方法和Windows安装…

1.初学docker

这是在centos7上的基本操作用法。 一、基本操作 # 安装yum源 yum install -y yum-utils # 配置yum源 yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo # 安装docker yum install -y docker-ce-cli containerd.io docker-buildx-plu…

计算机网络-数据链路层

一、认识以太网 "以太网" 不是⼀种具体的网络&#xff0c;而是一种技术标准; 既包含了数据链路层的内容, 也包含了⼀些物理 层的内容。 例如&#xff1a;规定了网络拓扑结构&#xff0c;访问控制方式&#xff0c;传输速率等; 例如&#xff1a;以太网中的网线必须使用…

mysql的trace追踪SQL工具,进行sql优化

trace是MySQL5.6版本后提供的SQL跟踪工具&#xff0c;通过使用trace可以让我们明白optimizer&#xff08;优化器&#xff09;如何选择执行计划。 注意&#xff1a;开启trace工具会影响mysql性能&#xff0c;所以只适合临时分析sql使用&#xff0c;用完之后请立即关闭。 测试数…

MQ高可用相关设置

文章目录 前言MQ如何保证消息不丢失RabbitMQRocketMQKafkaMQ MQ如何保证顺序消息RabbitMQRocketMQKafka MQ刷盘机制/集群同步RabbitMQRocketMQKafka 广播消息&集群消息RabbitMQRocketMQ MQ集群架构RabbitMQRocketMQKafka 消息重试RabbitMQRockeMqKafka 死信队列RocketMQKaf…

基于springboot实现中小企业财务管理系统项目【项目源码+论文说明】计算机毕业设计

基于springboot实现中小企业财务管理系统演示 摘要 自改革开放一来&#xff0c;我国的经济发展进入到了快速发展时期&#xff0c;大城市的经济水平不断提高&#xff0c;吸引了很多的人不愿千里来大城市奋斗。一个企业的发展离不开相关的规定流程。信息化到来的今天在我们的生活…

计算机网络(基础篇)复习笔记——体系结构/协议基础(持续更新中......)

目录 1 计算机网络基础相关技术Rip 路由更新操作 2 体系结构(OSI 7层, TCP/IP4层)应用层运输层网络层IPv4无分类域间路由选择 CIDRIPV6 数据链路层循环冗余校验CRC协议设备 物理层传输媒体信道复用技术宽带接入技术数据通信 3 网络局域网(以太网Ethernet) 4 通信过程编码:信道极…

uniapp让输入框保持聚焦状态,不会失去焦点

使用场景&#xff1a;当输入框还有发送按钮的时候&#xff0c;点击发送希望软键盘不消失&#xff0c;还可以继续输入&#xff0c;或者避免因输入图片标签造成的屏闪问题 多次尝试后发现一个很实用的方法&#xff0c;适用input输入框和editor输入框 解决办法&#xff1a;把cli…

operator-sdk入门(mac)

1. 安装operator-sdk brew install operator-sdk 2. 安装kubebuilder brew install kubebuilder 3.初始化一个operator脚手架 3.1 新建一个文件夹 redis-operator 3.2 执行初始化 operator-sdk init --domain lyl.com --repo github.com 参数介绍 可以通过operator-sdk --…

Windows下同一电脑配置多个Git公钥访问不同的账号

前言 产生这个问题的原因是我在Gitee码云上有两个账号,为了方便每次不用使用http模式推拉代码,于是我就使用了ssh的模式,起初呢我用两台电脑分别连接两个账号,用起来也相安无事,近段时时间台式机在家里,我在外地出差了,就想着把ssh公钥同时添加到不同的账号里,结果却发现不能用…

《探索自动驾驶技术的前景与挑战》

自动驾驶技术,作为现代科技的一大突破,正逐渐改变着我们的交通方式、生活方式以及整个社会结构。本文将围绕自动驾驶技术的现状、优势、局限性以及未来发展趋势展开探讨。 自动驾驶技术的现状概述 自动驾驶技术作为当今科技领域的一项前沿技术,已经取得了巨大的进展并在不同…

Python算法题集_在排序数组中查找元素的第一个和最后一个位置

Python算法题集_在排序数组中查找元素的第一个和最后一个位置 题34&#xff1a;在排序数组中查找元素的第一个和最后一个位置1. 示例说明2. 题目解析- 题意分解- 优化思路- 测量工具 3. 代码展开1) 标准求解【二分法两次左边界】2) 改进版一【二分法左右边界】3) 改进版二【第三…

linux安装ngnix完整步骤(支持centos/银河麒麟操作系统)

linux安装ngnix&#xff08;支持centos/银河麒麟操作系统&#xff09; 本次操作系统安装ngnix采用离线或在线安装方式&#xff0c;离线就是不联网环境&#xff0c;在线则是联网环境&#xff1b;支持centos7或centos8或国产操作系统&#xff08;银河麒麟高级服务器操作系统&…

VUE3项目学习系列--项目基础配置(四)

一、环境变量配置 项目开发过程中会经历开发环境、测试环境、生产环境三种状态&#xff0c;对与环境变量的配置需求不同&#xff0c;因此需要在项目中进行环境变量的配置。 1.在项目根目录下添加如下3个文件 .env.development.env.production.env.test 文件中输入对应的配置…

Turbo C++编译并运行 C语言程序

Turbo C编译并运行 C语言程序 安装和下载Windows 版Turbo CTurbo C编译和运行 C 程序1.打开Turbo C2.新建C语言程序3.保存C语言程序4.命名C语言程序5.编译C语言程序6.运行C语言程序7.运行C语言程序成功 Turbo C是什么&#xff1f;什么是编译器&#xff1f;Turbo C/C 的超凡价值…

算法---双指针练习-4(盛水最多的容器)

题目 1. 题目解析2. 讲解算法原理3. 编写代码 1. 题目解析 题目地址&#xff1a;盛水最多的容器 2. 讲解算法原理 算法的主要思路是使用双指针的方法&#xff0c;通过不断调整指针的位置来计算面积&#xff0c;并更新最大面积。具体步骤如下&#xff1a; 初始化左指针x为数组…

Java二叉树 (2)

&#x1f435;本篇文章将对二叉树的一些基础操作进行梳理和讲解 一、操作简述 int size(Node root); // 获取树中节点的个数int getLeafNodeCount(Node root); // 获取叶子节点的个数int getKLevelNodeCount(Node root,int k); // 获取第K层节点的个数int getHeight(Node r…