[英]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.