1绘制金字塔(4分) 题目内容: 要求用户从键盘输入一个大写字母,使用嵌套循环产生像下面这样的金字塔图案: A ABA ABCBA ABCDCBA 程序运行结果示例1: Please input a capital: D↙ ____A ___ABA __ABCBA _ABCDCBA 程序运行结果示例2: Please input a capital: F↙ ______A _____ABA ____ABCBA ___ABCDCBA __ABCDEDCBA _ABCDEFEDCBA (说明:上面运行结果示例中,每行字母前面的下划线"_"代表屏幕上实际输出的是空格,最后一行前面有一个空格,倒数第二行有两个空格,以此类推。
时间: 2023-05-28 13:02:31 浏览: 112
代码如下:
letter = input("Please input a capital: ") #输入大写字母
n = ord(letter) - ord('A') + 1 #计算金字塔的层数
for i in range(n): #外层循环控制行数
for j in range(n-i-1): #输出前面的空格
print(" ", end="")
for k in range(i+1): #输出左半部分字母
print(chr(ord('A')+k), end="")
for l in range(i): #输出右半部分字母
print(chr(ord('A')+i-l-1), end="")
print() #换行输出下一行
其中,ord()函数用于获取字符的ASCII码值,chr()函数用于将ASCII码值转换为字符。
相关问题
用c语言帮我完成这道题:绘制金字塔(4分) 题目内容: 要求用户从键盘输入一个大写字母,使用嵌套循环产生像下面这样的金字塔图案: A ABA ABCBA ABCDCBA 程序运行结果示例1: Please input a capital: D↙ ____A ___ABA __ABCBA _ABCDCBA 程序运行结果示例2: Please input a capital: F↙ ______A _____ABA ____ABCBA ___ABCDCBA __ABCDEDCBA _ABCDEFEDCBA (说明:上面运行结果示例中,每行字母前面的下划线"_"代表屏幕上实际输出的是空格,最后一行前面有一个空格,倒数第二行有两个空格,以此类推。
#include <stdio.h>
int main()
{
char ch;
printf("Please input a capital: ");
scanf("%c", &ch);
for (int i = 1; i <= ch - 'A' + 1; i++) {
// 循环控制输出空格
for (int j = 1; j <= ch - 'A' + 1 - i; j++) {
printf(" ");
}
// 循环控制输出左边的字母
for (int j = 0; j < i; j++) {
printf("%c", 'A' + j);
}
// 循环控制输出右边的字母
for (int j = i - 2; j >= 0; j--) {
printf("%c", 'A' + j);
}
printf("\n");
}
return 0;
}
1. 应用OpenGL的库函数编写一个绘制彩色六边形的程序,要求绘制的三基色彩色分量从键盘输入
以下是用OpenGL的库函数编写绘制彩色六边形的程序,可以从键盘输入三个基色的RGB值:
```c++
#include <GL/glut.h>
#include <iostream>
using namespace std;
GLfloat r, g, b;
void init() {
glClearColor(1.0, 1.0, 1.0, 0.0);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluOrtho2D(0.0, 500.0, 0.0, 500.0);
}
void drawHexagon() {
glBegin(GL_POLYGON);
glColor3f(r, g, b);
glVertex2i(200, 200);
glVertex2i(300, 200);
glVertex2i(350, 250);
glVertex2i(300, 300);
glVertex2i(200, 300);
glVertex2i(150, 250);
glEnd();
}
void display() {
glClear(GL_COLOR_BUFFER_BIT);
drawHexagon();
glFlush();
}
int main(int argc, char** argv) {
cout << "Enter RGB values for the hexagon (0.0-1.0):" << endl;
cout << "R: ";
cin >> r;
cout << "G: ";
cin >> g;
cout << "B: ";
cin >> b;
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
glutInitWindowSize(500, 500);
glutInitWindowPosition(100, 100);
glutCreateWindow("Colored Hexagon");
init();
glutDisplayFunc(display);
glutMainLoop();
return 0;
}
```
首先定义了三个全局变量 `r`、`g`、`b`,表示输入的RGB值。在`init()`函数中设置背景色为白色,并将坐标系设置为二维平面。`drawHexagon()`函数用于绘制六边形,其中调用`glBegin()`和`glEnd()`函数表示开始和结束顶点的绘制,`glColor3f()`函数设置顶点的颜色。`display()`函数清空显示窗口并调用`drawHexagon()`函数绘制六边形,最后使用`glFlush()`函数将图形输出到屏幕上。在`main()`函数中先提示用户输入RGB值,然后使用`glut`库函数创建窗口并注册回调函数,进入主循环等待用户操作。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)