编写一个C语言程序,使用嵌套的for循环、while循环、函数和if-else语句来打印一个空心菱形星形图案。在这个C语言空心菱形示例中,if语句检查外围行并打印星号,否则打印空格以获得空心形状。
#include<stdio.h>
int main(void)
{
int i, j, k, rows;
printf("Enter Diamond Rows = ");
scanf("%d", &rows);
printf("Diamond Star Pattern\n");
for (i = 1 ; i <= rows; i++ )
{
for (j = 1 ; j <= rows - i; j++ )
{
printf(" ");
}
for (k = 1 ; k <= i * 2 - 1; k++ )
{
if (k == 1 || k == i * 2 - 1) {
printf("*");
}
else {
printf(" ");
}
}
printf("\n");
}
for (i = rows - 1 ; i > 0; i-- )
{
for (j = 1 ; j <= rows - i; j++ )
{
printf(" ");
}
for (k = 1 ; k <= i * 2 - 1; k++ )
{
if (k == 1 || k == i * 2 - 1) {
printf("*");
}
else {
printf(" ");
}
}
printf("\n");
}
}
输出。
Enter Diamond Rows = 9
Diamond Star Pattern
*
* *
* *
* *
* *
* *
* *
* *
* *
* *
* *
* *
* *
* *
* *
* *
*
在这个C语言空心菱形图案星形程序中,我们将for循环替换为while循环。
#include<stdio.h>
int main(void) {
int i, j, k, rows;
printf("Enter Diamond Rows = ");
scanf("%d", &rows);
i = 1 ;
while (i <= rows)
{
j = 1 ;
while (j <= rows - i)
{
printf(" ");
j++;
}
k = 1 ;
while ( k <= i * 2 - 1)
{
if (k == 1 || k == i * 2 - 1) {
printf("*");
}
else {
printf(" ");
}
k++;
}
printf("\n");
i++ ;
}
i = rows - 1 ;
while ( i > 0)
{
j = 1 ;
while(j <= rows - i )
{
printf(" ");
j++;
}
k = 1 ;
while (k <= i * 2 - 1 )
{
if (k == 1 || k == i * 2 - 1) {
printf("*");
}
else {
printf(" ");
}
k++;
}
printf("\n");
i-- ;
}
}
Enter Diamond Rows = 12
*
* *
* *
* *
* *
* *
* *
* *
* *
* *
* *
* *
* *
* *
* *
* *
* *
* *
* *
* *
* *
* *
*
使用do while循环打印空心菱形星形图案的C语言程序
#include<stdio.h>
int main(void) {
int i, j, k, rows;
printf("Enter Diamond Rows = ");
scanf("%d", &rows);
i = 1 ;
do
{
j = 1 ;
do
{
printf(" ");
} while ( j++ <= rows - i) ;
k = 1 ;
do
{
if (k == 1 || k == i * 2 - 1) {
printf("*");
}
else {
printf(" ");
}
} while ( ++k <= i * 2 - 1);
printf("\n");
} while ( ++i <= rows) ;
i = rows - 1 ;
do
{
j = 1 ;
do
{
printf(" ");
} while(j++ <= rows - i );
k = 1 ;
do
{
if (k == 1 || k == i * 2 - 1) {
printf("*");
}
else {
printf(" ");
}
} while (++k <= i * 2 - 1 );
printf("\n");
} while ( --i > 0);
}
Enter Diamond Rows = 7
*
* *
* *
* *
* *
* *
* *
* *
* *
* *
* *
* *
*
在这个C语言示例中,result函数打印给定符号的空心菱形图案。
#include<stdio.h>
void result(int rows, int i, char ch)
{
for (int j = 1; j <= rows - i; j++) {
printf(" ");
}
for (int k = 1; k <= i * 2 - 1; k++) {
if (k == 1 || k == i * 2 - 1) {
printf("%c", ch);
} else {
printf(" ");
}
}
printf("\n");
}
int main(void) {
int i, rows;
char ch;
printf("Enter Symbol = ");
scanf("%c", &ch);
printf("Enter Diamond Rows = ");
scanf("%d", &rows);
for (i = 1; i <= rows; i++) {
result(rows, i, ch);
}
for (i = rows - 1; i > 0; i--) {
result(rows, i, ch);
}
}
