```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)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)