第1个回答 2023-03-07
以下是使用 for 循环编写一个可打印出上述字符串的C程序。程序中嵌套使用两个 for 循环,内部循环和外部循环分别控制每行打印的星号数量和星号所在的位置。
```c
#include
int main() {
int n, i, j, space = 1;
printf("输入行数: ");
scanf("%d",&n);
space = n - 1;
for (j = 1; j <= n; j++) {
for (i = 1; i <= space; i++) {
printf(" ");
}
space--;
for (i = 1; i <= 2 * j - 1; i++) {
printf("*");
}
printf("\n");
}
space = 1;
for (j = 1; j <= n; j++) {
for (i = 1; i <= space; i++) {
printf(" ");
}
space++;
for (i = 1; i <= 2 * (n - j) - 1; i++) {
printf("*");
}
printf("\n");
}
return ;
}
```
该程序首先使用 scanf 函数获取菱形的行数 `n`。然后,外部循环和内部循环分别控制每行打印的星号数量和星号所在的位置。紧接着,程序打印出一个下半部分的菱形。
输出结果如下:
```
输入行数: 5
*
***
*****
*******
*********
*******
*****
***
*
```
第2个回答 2013-11-20
#include<stdio.h>
#include<conio.h>
int main()
{
int n=9,i=1,j;
for(i=1;i<=(n+1)/2;i++)
{
for(j=1;j<=2*i-1;j++)
{
printf("*");
}
printf("\n");
}
for(i=(n+1)/2-1;i>=0;i--)
{
for(j=2*i-1;j>=1;j--)
{
printf("*");
}
printf("\n");
}
getch();
return 0;
}本回答被网友采纳
第3个回答 2013-11-20
#include <stdio.h>
#include <stdlib.h>
int main()
{
int n,i,j;
printf("n=?\n");
scanf("%d",&n);
for(i=0;i<n*2+1;i++)
{
for(j=0;j<abs(i-n);j++)
printf(" ");
for(j=0;j<2*(n-abs(i-n))+1;j++)
printf("*");
printf("\n");
}
return 0;
}