输入的行数打印*号金字塔 分数 10 作者 jibaoyu 单位 江西理工大学 请在这里写题目描述。 根据输入的行数N打印N行由*号组成的金字塔图案。输入一个行数N(0<N<=10),当N<=0或N>10时输出“输入数据有误!” 输入格式: 输入一个行数N 输出格式: 对每一个输入行数N,输出N行的*号组成的金字塔(等腰三角形),行末无空格,如: * *** ***** ******* 输入样例1: 在这里给出一组输入。例如: 4 输出样例1: 在这里给出相应的输出。例如: * *** ***** ******* 输入样例2: 在这里给出一组输入。例如: 8 输出样例2: 在这里给出相应的输出。例如: * *** ***** ******* ********* *********** ************* *************** 代码长度限制 16 KB 时间限制 400 ms 内存限制 64 MB
时间: 2023-07-05 12:17:42 浏览: 43
以下是一份实现题目要求的C++代码:
```c++
#include <iostream>
using namespace std;
int main() {
int n;
cin >> n;
if (n <= 0 || n > 10) { // 判断输入数据是否合法
cout << "输入数据有误!" << endl;
return 0;
}
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= n - i; j++) { // 输出每行前面的空格
cout << " ";
}
for (int j = 1; j <= 2 * i - 1; j++) { // 输出每行中的星号
cout << "*";
}
cout << endl;
}
return 0;
}
```
该程序首先读入行数n,然后判断n是否在规定范围内。如果不在范围内,输出错误信息并结束程序。如果在范围内,就按要求输出由空格和星号组成的金字塔图案。程序中第一个循环输出每行前面的空格,第二个循环输出每行中的星号。
相关问题
编写一个c语言程序,输入n行,打印n行由*组成的金字塔形,n不超过10
好的,我明白了。以下是你要求的C语言程序。
```
#include <stdio.h>
int main()
{
int n, i, j, space;
printf("请输入行数n: ");
scanf("%d", &n);
space = n;
for (i = 1; i <= n; i++)
{
for (j = 1; j < space; j++)
printf(" ");
space--;
for (j = 1; j <= 2 * i - 1; j++)
printf("*");
printf("\n");
}
return 0;
}
```
这个程序可以输入行数n,然后打印n行由*组成的金字塔形。你可以自己编译运行一下,看看效果如何。如果还有其他问题,可以随时问我。
编写函数,根据形参行数n及字符ch,打印出n行由ch字符组成的金字塔
以下是Python代码实现:
```python
def print_pyramid(n, ch):
for i in range(1, n + 1):
# 打印空格
print(' ' * (n - i), end='')
# 打印字符
print(ch * (2 * i - 1))
```
函数接受两个参数:行数n和字符ch。在函数体内,利用for循环遍历每一行,首先打印空格,然后打印字符。空格的数量逐行减少,字符的数量逐行增加。最后输出的结果就是一个金字塔形状。
示例输出:
```python
>>> print_pyramid(5, '*')
*
***
*****
*******
*********
```