簡體   English   中英

星形圖案打印不好

[英]STAR PATTERN NOT PRINTING WELL

我想以這種方式打印星形圖案:

******
*****
****
***
**
*

但它是這樣打印的:

******
******
******
******
******
******

有人能幫我嗎? 這是我的代碼:

main:
        daddiu  $sp,$sp,-48
        sd      $31,40($sp)
        sd      $fp,32($sp)
        sd      $28,24($sp)
        move    $fp,$sp
        lui     $28,%hi(%neg(%gp_rel(main)))
        daddu   $28,$28,$25
        daddiu  $28,$28,%lo(%neg(%gp_rel(main)))
        sw      $0,0($fp)
        b       .L2
        nop

.L5:
        li      $2,6                        # 0x6
        sw      $2,4($fp)
        b       .L3
        nop

.L4:
        li      $4,42                 # 0x2a
        ld      $2,%call16(putchar)($28)
        move    $25,$2
        nop

        lw      $2,4($fp)
        addiu   $2,$2,-1
        sw      $2,4($fp)
.L3:
        lw      $2,4($fp)
        bgez    $2,.L4
        nop

        li      $4,10                 # 0xa
        ld      $2,%call16(putchar)($28)
        move    $25,$2
        nop

        lw      $2,0($fp)
        addiu   $2,$2,1
        sw      $2,0($fp)
.L2:
        lw      $2,0($fp)
        slt     $2,$2,6
        bne     $2,$0,.L5
        nop

        nop
        move    $sp,$fp
        ld      $31,40($sp)
        ld      $fp,32($sp)
        ld      $28,24($sp)
        daddiu  $sp,$sp,48
        j       $31
        nop

嘿,可能是你在 mips 中設置循環時犯了錯誤
您沒有正確初始化內部循環
如果您將 c 程序轉換為 mips,則比正確設置內循環的限制

main:
        daddiu  $sp,$sp,-48
        sd      $31,40($sp)
        sd      $fp,32($sp)
        sd      $28,24($sp)
        move    $fp,$sp
        lui     $28,%hi(%neg(%gp_rel(main)))
        daddu   $28,$28,$25
        daddiu  $28,$28,%lo(%neg(%gp_rel(main)))
        sw      $0,0($fp)
        b       .L2
        nop

.L5:
        li      $2,5                        # 0x5
        sw      $2,4($fp)
        b       .L3
        nop

.L4:
        li      $4,42                 # 0x2a
        ld      $2,%call16(putchar)($28)
        move    $25,$2
        nop

        lw      $2,4($fp)
        addiu   $2,$2,-1
        sw      $2,4($fp)
.L3:
        lw      $3,4($fp)
        lw      $2,0($fp)
        slt     $2,$3,$2
        beq     $2,$0,.L4
        nop

        li      $4,10                 # 0xa
        ld      $2,%call16(putchar)($28)
        move    $25,$2
        nop

        lw      $2,0($fp)
        addiu   $2,$2,1
        sw      $2,0($fp)
.L2:
        lw      $2,0($fp)
        slt     $2,$2,6
        bne     $2,$0,.L5
        nop

        nop
        move    $sp,$fp
        ld      $31,40($sp)
        ld      $fp,32($sp)
        ld      $28,24($sp)
        daddiu  $sp,$sp,48
        j       $31
        nop
#include <iostream>
using namespace std;

int main(){
int a, b;


for(b=1;b<=6;b++){
for(a=1;a<=6;a++){
if(a<=7-b)
cout<<"*";
else 
cout<<" ";
}
cout<<"\n";
}



return 0;
}
#include <iostream>
using namespace std;

int main(){
int i, a;


for(i=1;i<=6;i++){
for(a=1;a<=6;a++){
if(a<=7-i)
cout<<"*";
else 
cout<<" ";
}
cout<<"\n";
}



return 0;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM