活动介绍

生日蛋糕代码c++语言

时间: 2025-01-07 09:47:06 浏览: 85
### C++ 编写生日蛋糕程序 对于编写一个简单的C++程序来模拟庆祝生日的场景,可以创建一个基本的应用程序,该应用程序打印出带有祝福语句的信息以及一个简单表示蛋糕的文字图案。下面是一个可能实现的例子: ```cpp #include <iostream> #include <string> using namespace std; void printCake(int layers) { for (int i = 0; i < layers; ++i) { // Print spaces before each layer of cake cout << string(layers - i - 1, ' '); // Print stars representing the top part of the cake slice cout << string(2 * i + 1, '*') << endl; } // Base of the cake cout << string(layers, "___") << endl; } void celebrateBirthday(const string& name) { cout << "Happy Birthday to You!" << endl; cout << "Happy Birthday to You!" << endl; cout << "Happy Birthday dear " << name << "!" << endl; cout << "Happy Birthday to You!" << endl; } int main() { string personName; int numberOfLayers; cout << "Enter the name of the birthday person: "; getline(cin, personName); cout << "How many layers should the cake have? "; cin >> numberOfLayers; celebrateBirthday(personName); cout << "\nHere's your special birthday cake:\n"; printCake(numberOfLayers); return 0; } ``` 这段代码定义了一个`printCake()`函数用于绘制不同层数的蛋糕图形[^1],还有一个`celebrateBirthday()`函数用来输出传统的生日歌歌词并加入个人的名字作为祝福对象。
阅读全文

相关推荐

以下是用 Dev - C++(支持 C 语言或 C++ 编译)完成这些题目的代码实现,涵盖 C 语言 版本(部分题目用 C++ 特性更方便的会用 C++ ,也可调整为纯 C ),按题目顺序逐一编写: 题目 1:计算双层生日蛋糕黄油体积(C 语言) c #include <stdio.h> #define PI 3.14159 // 圆柱体积公式:底面积×高(深度),双层则×2 int main() { double r, h, volume; printf("请输入黄油半径 r 和深度 h:"); scanf("%lf %lf", &r, &h); volume = 2 * PI * r * r * h; // 双层,两个圆柱体积相加 printf("双层蛋糕黄油体积为:%.2lf\n", volume); return 0; }   题目 2:解一元二次方程(C 语言,用  math.h  处理开根号 ) c #include <stdio.h> #include <math.h> int main() { double a, b, c, delta, x1, x2; printf("请输入方程系数 a、b、c:"); scanf("%lf %lf %lf", &a, &b, &c); delta = b * b - 4 * a * c; // 判别式 if (a == 0) { printf("不是二次方程,a 不能为 0!\n"); } else if (delta > 0) { x1 = (-b + sqrt(delta)) / (2 * a); x2 = (-b - sqrt(delta)) / (2 * a); printf("两个不同实根:x1=%.2lf,x2=%.2lf\n", x1, x2); } else if (delta == 0) { x1 = -b / (2 * a); printf("一个实根(重根):x=%.2lf\n", x1); } else { printf("无实根,有复数根(需拓展复数运算才能显示)\n"); } return 0; }   题目 3:6 人报数找报 3000 的人(C 语言,取余简化循环 ) c #include <stdio.h> int main() { // 总人数 6,报数到 3000,(3000 - 1) % 6 得索引,+1 对应第 n 个人 int person = (3000 - 1) % 6 + 1; printf("报 3000 的是第 %d 个人\n", person); return 0; }   题目 4:判断整数不能被 3、5、7 整除(C 语言 ) c #include <stdio.h> int main() { int num; printf("请输入一个整数:"); scanf("%d", &num); if (num % 3 != 0 && num % 5 != 0 && num % 7 != 0) { printf("%d 不能被 3、5、7 中的任何一个整除\n", num); } else { printf("%d 能被 3、5、7 中至少一个整除\n", num); } return 0; }   题目 5:循环输出字母图形(C 语言,利用 ASCII 码 + 循环控制 ) c #include <stdio.h> int main() { for (int i = 0; i < 7; i++) { // 共 7 行 char start = 'A' + i; // 每行起始字母 for (int j = 0; j < 7; j++) { // 超过 'G' 则循环回 'A',用 % 7 控制 printf("%c ", (start + j - 'A') % 7 + 'A'); } printf("\n"); } return 0; }   题目 6:计算 100! 末尾 0 的个数(C 语言,统计因数 5 的个数 ) c #include <stdio.h> int main() { int count = 0; for (int i = 5; i <= 100; i += 5) { int temp = i; while (temp % 5 == 0) { // 处理含多个 5 因数的数(如 25=5×5) count++; temp /= 5; } } printf("100! 末尾 0 的个数:%d\n", count); return 0; }   题目 7:计算 1! + 2! +... + n!(C 语言,n 范围 3 - 20 ) c #include <stdio.h> // 单独写阶乘函数 long long factorial(int n) { long long res = 1; for (int i = 1; i <= n; i++) { res *= i; } return res; } int main() { int n; long long sum = 0; printf("请输入 3 - 20 之间的 n:"); scanf("%d", &n); if (n < 3 || n > 20) { printf("n 超出范围!\n"); return 0; } for (int i = 1; i <= n; i++) { sum += factorial(i); } printf("1! + 2! +... + %d! = %lld\n", n, sum); return 0; }   题目 8:猜数字游戏(C 语言,用  rand()  生成随机数 ,需加  stdlib.h   time.h  ) c #include <stdio.h> #include <stdlib.h> #include <time.h> int main() { srand((unsigned int)time(NULL)); // 初始化随机种子 int target = rand() % 10 + 1; // 生成 1 - 10 的随机数 int guess, count = 0; printf("猜数字游戏开始!数字在 1 - 10 之间\n"); do { printf("请输入猜测数字:"); scanf("%d", &guess); count++; if (guess > target) { printf("猜大了,继续猜~\n"); } else if (guess < target) { printf("猜小了,继续猜~\n"); } } while (guess != target); printf("恭喜猜对!共猜了 %d 次\n", count); return 0; }   题目 9:4 位整数逆序(C 语言,函数实现 ) c #include <stdio.h> // 定义逆序函数 int fun(int n) { int reverse = 0; while (n > 0) { reverse = reverse * 10 + n % 10; n /= 10; } return reverse; } int main() { int n; printf("请输入一个 4 位正整数:"); scanf("%d", &n); if (n < 1000 || n > 9999) { printf("不是 4 位正整数!\n"); return 0; } printf("逆序数为:%d\n", fun(n)); return 0; }   题目 10:输出水仙花数(C 语言,遍历三位数判断 ) c #include <stdio.h> // 立方函数,也可用 pow ,但整数运算更高效 int cube(int digit) { return digit * digit * digit; } int main() { printf("水仙花数有:"); for (int num = 100; num < 1000; num++) { int百位 = num / 100; int十位 = (num / 10) % 10; int个位 = num % 10; if (cube(百位) + cube(十位) + cube(个位) == num) { printf("%d ", num); } } printf("\n"); return 0; }   题目 11:分解质因数(C 语言,循环除质数 ) c #include <stdio.h> int main() { int num; printf("请输入一个正整数:"); scanf("%d", &num); printf("%d = ", num); for (int i = 2; i <= num; i++) { while (num % i == 0) { printf("%d", i); num /= i; if (num != 1) { printf("*"); } } } printf("\n"); return 0; }   题目 12:计算  s = a + aa + aaa +... (C 语言,构造每一项累加 ) c #include <stdio.h> int main() { int a, n; // a 是数字,n 是项数(题目没说项数,这里假设用户输入项数 n ,也可按固定逻辑改) printf("请输入数字 a(1 - 9)和项数 n:"); scanf("%d %d", &a, &n); long long sum = 0, term = 0; for (int i = 0; i < n; i++) { term = term * 10 + a; // 构造每一项(如 a, aa, aaa...) sum += term; } printf("s = %lld\n", sum); return 0; }   题目 13:猴子吃桃问题(C 语言,逆推法 ) c #include <stdio.h> int main() { int day = 10, peach = 1; // 第 10 天剩 1 个,逆推 for (int i = 9; i >= 1; i--) { peach = (peach + 1) * 2; // 前一天桃子数 = (后一天 +1)×2 } printf("第一天摘了 %d 个桃子\n", peach); return 0; }   题目 14:判断位数并逆序输出(C 语言,用循环取余 / 除 ) c #include <stdio.h> int main() { int num, digitCount = 0, temp; printf("请输入一个不多于 5 位的正整数:"); scanf("%d", &num); temp = num; // 统计位数 while (temp > 0) { digitCount++; temp /= 10; } printf("它是 %d 位数\n", digitCount); // 逆序输出 printf("逆序数字:"); temp = num; while (temp > 0) { printf("%d", temp % 10); temp /= 10; } printf("\n"); return 0; }   题目 15:对 10 个数排序(C 语言,用简单选择排序演示 ,也可用  qsort  ) c #include <stdio.h> // 选择排序函数 void sort(int arr[], int n) { for (int i = 0; i < n - 1; i++) { int minIndex = i; for (int j = i + 1; j < n; j++) { if (arr[j] < arr[minIndex]) { minIndex = j; } } // 交换 int temp = arr[i]; arr[i] = arr[minIndex]; arr[minIndex] = temp; } } int main() { int arr[10]; printf("请输入 10 个整数:"); for (int i = 0; i < 10; i++) { scanf("%d", &arr[i]); } sort(arr, 10); printf("排序后:"); for (int i = 0; i < 10; i++) { printf("%d ", arr[i]); } printf("\n"); return 0; }   题目 16:打印杨辉三角(C 语言,二维数组存储 ) c #include <stdio.h> // 杨辉三角行数 #define ROWS 10 int main() { int triangle[ROWS][ROWS] = {0}; // 初始化杨辉三角 for (int i = 0; i < ROWS; i++) { triangle[i][0] = 1; triangle[i][i] = 1; for (int j = 1; j < i; j++) { triangle[i][j] = triangle[i - 1][j - 1] + triangle[i - 1][j]; } } // 打印 for (int i = 0; i < ROWS; i++) { for (int j = 0; j <= i; j++) { printf("%d ", triangle[i][j]); } printf("\n"); } return 0; }   题目 17:1、2、3、4 组成无重复三位数(C 语言,三重循环枚举 ) c #include <stdio.h> int main() { int count = 0; printf("能组成的三位数:"); // 百位、十位、个位分别枚举 for (int a = 1; a <= 4; a++) { for (int b = 1; b <= 4; b++) { for (int c = 1; c <= 4; c++) { if (a != b && a != c && b != c) { printf("%d%d%d ", a, b, c); count++; } } } } printf("\n共 %d 个\n", count); return 0; }   使用说明 1. 打开 Dev - C++ ,新建  .c  或  .cpp  文件(上述代码是 C 语言为主,存为  .c  更合适 )。 2. 将对应题目代码复制进去,点击 “运行”/“编译运行” 即可测试。 3. 若题目有输入,按提示输入数据,观察输出是否符合逻辑。 生成所有C语言程序流程图

最新推荐

recommend-type

学籍管理系统源代码 c++.docx

在这个“学籍管理系统源代码”中,我们主要涉及到C++编程语言和面向对象编程的概念。系统设计了一个学生类(Student)和一个学籍管理类(StudentManagement),用于实现学校对学生信息的管理。以下是相关的知识点: ...
recommend-type

VS2019中CMake项目如何指定c++语言标准

然而,在使用CMake时,需要指定C++语言标准,以便正确地编译和运行C++代码。下面将详细介绍如何在VS2019中使用CMake项目指定C++语言标准。 CMake项目默认的C++语言标准较低,可能不支持最新的C++特性。如果需要使用...
recommend-type

使用C++调用Python代码的方法详解

在C++代码中,我们需要使用PyImport_ImportModule()函数来导入Python模块,并使用PyObject_GetAttrString()函数来获取Python函数的对象。 三、Py_BuildValue和PyObject_CallObject函数的使用 在C++代码中,我们...
recommend-type

c++入门,核心,提高讲义笔记

C++是一种强大的编程语言,广泛应用于系统开发、游戏编程、软件工程等领域。本文将深入讲解C++的基础知识,包括入门、核心概念以及提高技巧。 首先,C++的入门学习始于了解如何编写并运行一个基本的C++程序。这通常...
recommend-type

C++实现图形界面时钟表盘代码

总结来说,这个C++实现的图形界面时钟表盘代码利用了Windows API中的图形绘制函数,包括坐标映射、图形绘制和窗口消息处理。虽然这个例子较为基础,但它可以作为进一步开发更复杂GUI应用程序的起点,比如添加动态...
recommend-type

Web前端开发:CSS与HTML设计模式深入解析

《Pro CSS and HTML Design Patterns》是一本专注于Web前端设计模式的书籍,特别针对CSS(层叠样式表)和HTML(超文本标记语言)的高级应用进行了深入探讨。这本书籍属于Pro系列,旨在为专业Web开发人员提供实用的设计模式和实践指南,帮助他们构建高效、美观且可维护的网站和应用程序。 在介绍这本书的知识点之前,我们首先需要了解CSS和HTML的基础知识,以及它们在Web开发中的重要性。 HTML是用于创建网页和Web应用程序的标准标记语言。它允许开发者通过一系列的标签来定义网页的结构和内容,如段落、标题、链接、图片等。HTML5作为最新版本,不仅增强了网页的表现力,还引入了更多新的特性,例如视频和音频的内置支持、绘图API、离线存储等。 CSS是用于描述HTML文档的表现(即布局、颜色、字体等样式)的样式表语言。它能够让开发者将内容的表现从结构中分离出来,使得网页设计更加模块化和易于维护。随着Web技术的发展,CSS也经历了多个版本的更新,引入了如Flexbox、Grid布局、过渡、动画以及Sass和Less等预处理器技术。 现在让我们来详细探讨《Pro CSS and HTML Design Patterns》中可能包含的知识点: 1. CSS基础和选择器: 书中可能会涵盖CSS基本概念,如盒模型、边距、填充、边框、背景和定位等。同时还会介绍CSS选择器的高级用法,例如属性选择器、伪类选择器、伪元素选择器以及选择器的组合使用。 2. CSS布局技术: 布局是网页设计中的核心部分。本书可能会详细讲解各种CSS布局技术,包括传统的浮动(Floats)布局、定位(Positioning)布局,以及最新的布局模式如Flexbox和CSS Grid。此外,也会介绍响应式设计的媒体查询、视口(Viewport)单位等。 3. 高级CSS技巧: 这些技巧可能包括动画和过渡效果,以及如何优化性能和兼容性。例如,CSS3动画、关键帧动画、转换(Transforms)、滤镜(Filters)和混合模式(Blend Modes)。 4. HTML5特性: 书中可能会深入探讨HTML5的新标签和语义化元素,如`<article>`、`<section>`、`<nav>`等,以及如何使用它们来构建更加标准化和语义化的页面结构。还会涉及到Web表单的新特性,比如表单验证、新的输入类型等。 5. 可访问性(Accessibility): Web可访问性越来越受到重视。本书可能会介绍如何通过HTML和CSS来提升网站的无障碍访问性,比如使用ARIA标签(Accessible Rich Internet Applications)来增强屏幕阅读器的使用体验。 6. 前端性能优化: 性能优化是任何Web项目成功的关键。本书可能会涵盖如何通过优化CSS和HTML来提升网站的加载速度和运行效率。内容可能包括代码压缩、合并、避免重绘和回流、使用Web字体的最佳实践等。 7. JavaScript与CSS/HTML的交互: 在现代Web开发中,JavaScript与CSS及HTML的交云并用是不可或缺的。书中可能会讲解如何通过JavaScript动态地修改样式、操作DOM元素以及使用事件监听和响应用户交互。 8. Web框架和预处理器: 这本书可能会提到流行的Web开发框架和预处理器,比如Bootstrap、Foundation、Sass和Less等,它们是如何简化和加速开发流程的。 9. 测试和维护: 书中也可能包含关于如何测试网页以及如何持续优化和维护CSS和HTML代码的章节。例如,使用断言测试、自动化测试、性能分析工具等。 最后,鉴于文件名称列表中的“压缩包子文件”的表述,这可能是对“压缩包”文件的一种误译或误用,此处“压缩包”应该指的是包含该书籍PDF文件的压缩文件格式,如ZIP或RAR。而“Pro CSS and HTML Design Patterns.pdf”指的就是该书籍的PDF格式电子版文件。 以上所述,构成了《Pro CSS and HTML Design Patterns》一书可能包含的核心知识点。通过学习这些内容,Web前端开发者可以掌握更为高效和优雅的设计模式,从而在日常工作中更高效地解决实际问题。
recommend-type

Zotero 7数据同步:Attanger插件安装&设置,打造文献管理利器

/i.s3.glbimg.com/v1/AUTH_08fbf48bc0524877943fe86e43087e7a/internal_photos/bs/2018/L/j/ipKA8TRPyt4ptaG1DGww/t-m-01.png) # 1. Zotero 7数据同步简介 在数字时代,管理研究数据变得日益重要,而Zot
recommend-type

卷积神经网络的基础理论200字

<think>我们正在回答用户关于卷积神经网络(CNN)基础理论的询问。根据提供的引用资料,我们可以概述CNN的基本结构和工作原理。引用[1]提到CNN是一种前馈神经网络,信息从输入单向流动到输出。引用[2]指出CNN在图像处理等领域应用广泛,通过层次结构和参数调整实现模式识别。引用[3]说明CNN包含卷积层,使用卷积核提取局部特征,减少参数量,提高效率。引用[4]则提到了训练过程,包括前向传播、误差计算和反向传播(梯度下降)。因此,我们将从以下几个方面概述CNN:1.CNN的基本结构(卷积层、池化层、全连接层)2.卷积操作的工作原理(局部感受野、权重共享)3.训练过程(前向传播、损失函数、反
recommend-type

轻便实用的Java库类查询工具介绍

标题 "java2库类查询" 和描述表明,所提及的工具是一个专门用于查询Java库类的应用程序。此软件旨在帮助开发者快速地查找和引用Java的标准开发工具包(SDK)中包含的所有应用程序编程接口(API)类。通过这样的工具,开发者可以节省大量在官方文档或搜索引擎上寻找类定义和使用方法的时间。它被描述为轻巧且方便,这表明其占用的系统资源相对较少,同时提供直观的用户界面,使得查询过程简洁高效。 从描述中可以得出几个关键知识点: 1. Java SDK:Java的软件开发工具包(SDK)是Java平台的一部分,提供了一套用于开发Java应用软件的软件包和库。这些软件包通常被称为API,为开发者提供了编程界面,使他们能够使用Java语言编写各种类型的应用程序。 2. 库类查询:这个功能对于开发者来说非常关键,因为它提供了一个快速查找特定库类及其相关方法、属性和使用示例的途径。良好的库类查询工具可以帮助开发者提高工作效率,减少因查找文档而中断编程思路的时间。 3. 轻巧性:软件的轻巧性通常意味着它对计算机资源的要求较低。这样的特性对于资源受限的系统尤为重要,比如老旧的计算机、嵌入式设备或是当开发者希望最小化其开发环境占用空间时。 4. 方便性:软件的方便性通常关联于其用户界面设计,一个直观、易用的界面可以让用户快速上手,并减少在使用过程中遇到的障碍。 5. 包含所有API:一个优秀的Java库类查询软件应当能够覆盖Java所有标准API,这包括Java.lang、Java.util、Java.io等核心包,以及Java SE平台的所有其他标准扩展包。 从标签 "java 库 查询 类" 可知,这个软件紧密关联于Java编程语言的核心功能——库类的管理和查询。这些标签可以关联到以下知识点: - Java:一种广泛用于企业级应用、移动应用(如Android应用)、网站后端、大型系统和许多其他平台的编程语言。 - 库:在Java中,库是一组预打包的类和接口,它们可以被应用程序重复使用。Java提供了庞大的标准库,以支持各种常见的任务和功能。 - 查询:查询指的是利用软件工具搜索、定位和检索信息的过程。对于Java库类查询工具来说,这意味着可以通过类名、方法签名或其他标识符来查找特定的API条目。 最后,压缩包文件列表包含了两个文件:“java.dit”和“Java.exe”。其中“Java.exe”很可能是程序的可执行文件,而“java.dit”可能是一个数据文件,用于存储Java类的索引或数据。由于文件名后缀通常与文件类型相关联,但“dit”并不是一个常见的文件扩展名。这可能是一个特定于软件的自定义格式,或是一个打字错误。 总结来说,"java2库类查询" 是一个针对Java开发者的实用工具,它提供了一个轻量级、易用的平台来查询和定位Java标准库中的所有类和API。此工具对优化开发流程,减少查找Java类文档的时间大有裨益,尤其适合需要频繁查阅Java API的开发者使用。
recommend-type

【Zotero 7终极指南】:新手必备!Attanger插件全攻略与数据同步神技

# 1. Zotero 7与Attanger插件的介绍 在当今的学术研究和知识管理领域,高效的文献管理工具至关重要。Zotero 7作为一个流行的参考文献管理软件,因其强大的功能和用户友好的界面而受到专业人士的青睐。而Attanger插件则为Zotero 7带来了更多定制化和高级功能,极大地增强