使用C++.编写一个函数,调用该函数能够打印一个由指定字符组成的1行金字塔。其中,指 定打印的字符和行数n分别由两个形参表示。
时间: 2023-06-13 16:09:09 浏览: 109
以下是代码实现:
```c++
#include <iostream>
void printPyramid(char ch, int n) {
for (int i=1; i<=n; i++) {
// 打印空格
for (int j=1; j<=n-i; j++) {
std::cout << " ";
}
// 打印字符
for (int j=1; j<=2*i-1; j++) {
std::cout << ch;
}
std::cout << std::endl;
}
}
int main() {
printPyramid('*', 5);
return 0;
}
```
其中,`printPyramid(char ch, int n)`函数用于打印金字塔,第一个形参`ch`表示指定的字符,第二个形参`n`表示行数。函数中使用了两个循环,第一个循环用于打印每一行前面的空格,第二个循环用于打印每一行的字符。在`main()`函数中,调用`printPyramid()`函数打印一个由5行星号组成的金字塔。
相关问题
如何用C++编写一个函数,将无符号整数转换为二进制字符串并打印出来?
在C++中,你可以使用内置的`bitset`库或者手动编写循环来实现无符号整数到二进制字符串的转换。这里提供一种手动编码的方式来展示:
```cpp
#include <iostream>
#include <string>
std::string intToBinary(unsigned int num) {
std::string binary;
while (num > 0) {
binary = std::to_string(num % 2) + binary;
num /= 2;
}
return binary;
}
int main() {
unsigned int number;
std::cout << "Enter an unsigned integer: ";
std::cin >> number;
std::string binary = intToBinary(number);
std::cout << "The binary representation of the number is: " << binary << std::endl;
// Print the binary string
std::cout << "Printing binary digits: ";
for (char digit : binary) {
std::cout << digit;
}
return 0;
}
```
这个程序首先接收用户输入的无符号整数,然后通过`intToBinary`函数将其转换成二进制字符串。函数内部通过不断地取余数和除以2的方式获取每一位的二进制值,并添加到结果字符串的前面。最后,在`main`函数中,它不仅打印完整的字符串,还逐位打印出数字。
2. 编写一个函数,将两个字符串连接起来,不能使用strcat函数。
可以使用以下函数实现字符串连接:
```c++
#include <string.h>
void my_strcat(char* dest, const char* src)
{
while (*dest)
{
dest++;
}
while (*src)
{
*(dest++) = *(src++);
}
*dest = '\0';
}
```
其中,dest参数表示目标字符串,src参数表示源字符串。函数实现中,先将dest指针移动到目标字符串的结尾处,然后将src字符串的每个字符逐一复制到dest字符串中,直到src字符串的结尾处,最后在dest字符串结尾处添加'\0',表示字符串结束。
阅读全文