编程打印出如下的菱形,其边长是6个*,菱形的行数和个数由键盘输入,例如,输入4,3,表示打印的菱形有4行,一共打印3个菱形。
#include<stdio.h>
int main()
{
int n, m, i, j, k, s;
scanf("%d %d", &n, &m);
s = n - 1;
for(k = 0; k < m; k++)
{
for(i = 0; i < n; i++)
{
for(j = 0; j < s; j++)
printf(" ");
for(j = 0; j <= i; j++)
printf("* ");
printf("\n");
s--;
}
s = 1;
for(i = n-1; i >= 0; i--)
{
for(j = 0; j < s; j++)
printf(" ");
for(j = 0; j < i; j++)
printf("* ");
printf("\n");
s++;
}
s = n - 1;
}
return 0;
}
以下是实现该功能的C++代码:
#include <iostream>
using namespace std;
// 打印菱形
void printRhombus(int row)
{
int n = row - 1;
for (int i = 0; i < row; i++)
{
for (int j = 0; j < n; j++)
{
cout << " ";
}
for (int j = 0; j <= i; j++)
{
cout << "* ";
}
cout << endl;
n--;
}
n = 1;
for (int i = row - 1; i > 0; i--)
{
for (int j = 0; j < n; j++)
{
cout << " ";
}
for (int j = 0; j < i; j++)
{
cout << "* ";
}
cout << endl;
n++;
}
}
int main()
{
int row, count;
cout << "请输入菱形边长:";
cin >> row;
cout << "请输入菱形个数:";
cin >> count;
for (int i = 0; i < count; i++)
{
printRhombus(row);
}
return 0;
}
这里我们定义了一个 printRhombus 函数来实现打印菱形的功能,该函数的参数 row 表示菱形的边长。首先我们通过循环打印上部分的菱形,然后再循环打印下部分的菱形。注意,我们在打印上部分的时候,每行的第一个字符需要先打印一定数量的空格,以保证菱形居中。
在 main 函数中,我们先通过用户输入获取菱形的边长和菱形的个数,然后循环调用 printRhombus 函数打印出指定个数的菱形,由于需要打印多个菱形,因此使用了循环。
无论创建的是模态对话框,还是非模态对话框,当单击对话框上的OK按钮时,对话框都会消失。但有一点需要注意:
- 对模态对话框而言,此时对话框窗口对象被销毁了。
- 对非模态对话框来说,对话框窗口对象并未被销毁,只是隐藏起来了。
非模态对话框中单击OK按钮后,程序所发生的事情:
1. 程序调用基类(CDialog)的OnOK函数,这是一个虚函数。
2. OnOK调用EndDialog函数,这个函数用于终止模态对话框,而对于非模态对话框,这个函数只是使对话框窗口不可见,并不销毁它。所以对于非模态对话框来说,如果有一个ID值为IDOK的按钮,就必须重写基类的OnOK这个虚函数,并在重写的函数中调用DestroyWindow函数,以完成销毁对话框的工作,同时注意不要再调用基类的OnOK函数。同样,如果非模态对话框中有一个ID值为IDCANCEL的按钮,也必须重写基类的OnCancel虚函数,并在重写的函数中调用DestroyWindow函数销毁对话框,同时注意不要再调用基类的OnCancel函数。