C语言 用for双重循环 编写一个有9行由*组成的菱形。

C语言 用for双重循环 编写一个有9行由*组成的菱形。,第1张

以下是使用 C 语言编写一个输出 9 行由星号组成的菱形程序,使用了双重 for 循环:

```c

#include <stdio.h>

int main() {

int rows = 9

int i, j, k

for (i = 1i <= rowsi++) {

for (j = 1j <= rows - ij++) {

printf(" ")

}

for (k = 1k <= 2 * i - 1k++) {

printf("*")

}

printf("

")

}

for (i = rows - 1i >= 1i--) {

for (j = 1j <= rows - ij++) {

printf(" ")

}

for (k = 1k <= 2 * i - 1k++) {

printf("*")

}

printf("

")

}

return 0

}

```

在上面的代码中,我们首先定义了一个变量 rows,它表示菱形的行数。接着使用了两个 for 循环来产生菱形的上半部分和下半部分。对于每一行,我们使用内层的 for 循环来打印菱形的空格和星号。外层的 for 循环则用于控制总共需要多少行。其中,第一个循环从 1 到 rows,第二个循环从 rows - 1 到 1。这样就可以输出完整的菱形了。

示例输出:

```

*

***

*****

*******

*********

*******

*****

***

*

```

希望这个代码可以帮助你实现你所需的功能

左边:

#include <stdio.h>

void main(){

int i,j

for(i=5i>0i--)

{

for(j=0j<ij++)

printf("*")

printf("\n")

}

}

中间:

#include <stdio.h>

void main(){

int i,j

for(i=5i>0i--)

{

for(j=0j<5-ij++)

printf(" ")

for(j=0j<ij++)

printf("*")

printf("\n")

}

}

右边:

#include <stdio.h>

void main(){

int i,j

for(i=0i<5i++)

{

for(j=1j<5-ij++)

printf(" ")

for(j=0j<=ij++)

printf("*")

printf("\n")

}

}

设主频12MHz的51单片机,编一个100ms二重循环的延时程序如下,供参考。其它汇编可以类似编程。

SSSS:MOV R0,#99本指令是单周期指令,用时1us

KKKK0:DJNZ R0,KKKKK2us

MOV R1,#1251us

LLLL0:DJNZ R1,LLLLL2us

NOP1us

NOP1us

NOP1us

NOP1us

LLLLL:SJMP LLLL02us

NOP1us

NOP1us

NOP1us

NOP1us

NOP1us

KKKKK:SJMP KKKK02us

NOP1us

NOP1us

NOP1us

NOP1us

NOP1us

RET2us

这段程序延时时间是

1+99*[2+1+125*(2+1+1+1+1+2)+1+1+1+1+1+2]+1+1+1+1+2=100000us=100ms

可以适当调整循环常数99、125以求减小NOP(空 *** 作指令),使程序更加精练。

dshxxf程序不错,但延时时间是50301us,计算如下1+100*(1+2*250+3)


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/8090635.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-13
下一篇 2023-04-13

发表评论

登录后才能评论

评论列表(0条)

保存