3 个解决方案
#1
干吗!?
#2
#include<stdio.h>
void main()
{
int n,i,j,k;
printf("please input the number:");
scanf("%d",&n);
for(i=0;i<=n;i++){
for(k=1;k<n;k++)
printf(" ");
for(j=1;j<=n-i;j++)
printf("*");
printf("\n");
}
}
你看看这个行不行啊!
void main()
{
int n,i,j,k;
printf("please input the number:");
scanf("%d",&n);
for(i=0;i<=n;i++){
for(k=1;k<n;k++)
printf(" ");
for(j=1;j<=n-i;j++)
printf("*");
printf("\n");
}
}
你看看这个行不行啊!
#3
c的我做出来了,想做个汇编的,上来问问...多谢了@,@
下面是汇编的:
DATA SEGMENT
A1 DB 0AH,0DH,'$'
A2 DB 0AH,0DH,'Input the number:','$'
DATA ENDS
STACK1 SEGMENT PARA STACK
DW 20H DUP(0)
STACK1 ENDS
CODE SEGMENT
ASSUME CS:CODE, DS:DATA, SS:STACK1
START: MOV AX, DATA
MOV DS, AX
LEA DX, A2 ;装入有效地址指令将源OP数的有效地址(偏移量)传送到目的地址中。
MOV AH, 9 ;显示字符串'Input the number:'
INT 21H
MOV AH, 1 ;显示输入字符
INT 21H
SUB AL, 30H ;由字符变数字
TEST AL, 01H ;判断奇偶
JNE PASS ;是奇数转到pass
INC AL ;是偶数则+1
PASS: MOV BL, AL ;第一行*数
MOV BH, 0 ;
OUT1: LEA DX, A1
MOV AH, 9
INT 21H
MOV CL, BL ;放个数
MOV CH, 0 ;
MOV DH, BH
CMP DH, 0
JE O2 ;跳转
O1: MOV DL, ' ' ;输出空格
MOV AH, 2
INT 21H
DEC DH ;减一
CMP DH, 0
JG O1
O2: MOV DL, '*' ;输出*
MOV AH, 2
INT 21H
LOOP O2 ;空格
INC BH ;行数加一
DEC BL ;*数减二
DEC BL
CMP BL, 0
JG OUT1 ;继续输入下一行
LEA DX, A1
MOV AH, 9
INT 21H
MOV AX, 4C00H
INT 21H
CODE ENDS
END START
下面是汇编的:
DATA SEGMENT
A1 DB 0AH,0DH,'$'
A2 DB 0AH,0DH,'Input the number:','$'
DATA ENDS
STACK1 SEGMENT PARA STACK
DW 20H DUP(0)
STACK1 ENDS
CODE SEGMENT
ASSUME CS:CODE, DS:DATA, SS:STACK1
START: MOV AX, DATA
MOV DS, AX
LEA DX, A2 ;装入有效地址指令将源OP数的有效地址(偏移量)传送到目的地址中。
MOV AH, 9 ;显示字符串'Input the number:'
INT 21H
MOV AH, 1 ;显示输入字符
INT 21H
SUB AL, 30H ;由字符变数字
TEST AL, 01H ;判断奇偶
JNE PASS ;是奇数转到pass
INC AL ;是偶数则+1
PASS: MOV BL, AL ;第一行*数
MOV BH, 0 ;
OUT1: LEA DX, A1
MOV AH, 9
INT 21H
MOV CL, BL ;放个数
MOV CH, 0 ;
MOV DH, BH
CMP DH, 0
JE O2 ;跳转
O1: MOV DL, ' ' ;输出空格
MOV AH, 2
INT 21H
DEC DH ;减一
CMP DH, 0
JG O1
O2: MOV DL, '*' ;输出*
MOV AH, 2
INT 21H
LOOP O2 ;空格
INC BH ;行数加一
DEC BL ;*数减二
DEC BL
CMP BL, 0
JG OUT1 ;继续输入下一行
LEA DX, A1
MOV AH, 9
INT 21H
MOV AX, 4C00H
INT 21H
CODE ENDS
END START
#1
干吗!?
#2
#include<stdio.h>
void main()
{
int n,i,j,k;
printf("please input the number:");
scanf("%d",&n);
for(i=0;i<=n;i++){
for(k=1;k<n;k++)
printf(" ");
for(j=1;j<=n-i;j++)
printf("*");
printf("\n");
}
}
你看看这个行不行啊!
void main()
{
int n,i,j,k;
printf("please input the number:");
scanf("%d",&n);
for(i=0;i<=n;i++){
for(k=1;k<n;k++)
printf(" ");
for(j=1;j<=n-i;j++)
printf("*");
printf("\n");
}
}
你看看这个行不行啊!
#3
c的我做出来了,想做个汇编的,上来问问...多谢了@,@
下面是汇编的:
DATA SEGMENT
A1 DB 0AH,0DH,'$'
A2 DB 0AH,0DH,'Input the number:','$'
DATA ENDS
STACK1 SEGMENT PARA STACK
DW 20H DUP(0)
STACK1 ENDS
CODE SEGMENT
ASSUME CS:CODE, DS:DATA, SS:STACK1
START: MOV AX, DATA
MOV DS, AX
LEA DX, A2 ;装入有效地址指令将源OP数的有效地址(偏移量)传送到目的地址中。
MOV AH, 9 ;显示字符串'Input the number:'
INT 21H
MOV AH, 1 ;显示输入字符
INT 21H
SUB AL, 30H ;由字符变数字
TEST AL, 01H ;判断奇偶
JNE PASS ;是奇数转到pass
INC AL ;是偶数则+1
PASS: MOV BL, AL ;第一行*数
MOV BH, 0 ;
OUT1: LEA DX, A1
MOV AH, 9
INT 21H
MOV CL, BL ;放个数
MOV CH, 0 ;
MOV DH, BH
CMP DH, 0
JE O2 ;跳转
O1: MOV DL, ' ' ;输出空格
MOV AH, 2
INT 21H
DEC DH ;减一
CMP DH, 0
JG O1
O2: MOV DL, '*' ;输出*
MOV AH, 2
INT 21H
LOOP O2 ;空格
INC BH ;行数加一
DEC BL ;*数减二
DEC BL
CMP BL, 0
JG OUT1 ;继续输入下一行
LEA DX, A1
MOV AH, 9
INT 21H
MOV AX, 4C00H
INT 21H
CODE ENDS
END START
下面是汇编的:
DATA SEGMENT
A1 DB 0AH,0DH,'$'
A2 DB 0AH,0DH,'Input the number:','$'
DATA ENDS
STACK1 SEGMENT PARA STACK
DW 20H DUP(0)
STACK1 ENDS
CODE SEGMENT
ASSUME CS:CODE, DS:DATA, SS:STACK1
START: MOV AX, DATA
MOV DS, AX
LEA DX, A2 ;装入有效地址指令将源OP数的有效地址(偏移量)传送到目的地址中。
MOV AH, 9 ;显示字符串'Input the number:'
INT 21H
MOV AH, 1 ;显示输入字符
INT 21H
SUB AL, 30H ;由字符变数字
TEST AL, 01H ;判断奇偶
JNE PASS ;是奇数转到pass
INC AL ;是偶数则+1
PASS: MOV BL, AL ;第一行*数
MOV BH, 0 ;
OUT1: LEA DX, A1
MOV AH, 9
INT 21H
MOV CL, BL ;放个数
MOV CH, 0 ;
MOV DH, BH
CMP DH, 0
JE O2 ;跳转
O1: MOV DL, ' ' ;输出空格
MOV AH, 2
INT 21H
DEC DH ;减一
CMP DH, 0
JG O1
O2: MOV DL, '*' ;输出*
MOV AH, 2
INT 21H
LOOP O2 ;空格
INC BH ;行数加一
DEC BL ;*数减二
DEC BL
CMP BL, 0
JG OUT1 ;继续输入下一行
LEA DX, A1
MOV AH, 9
INT 21H
MOV AX, 4C00H
INT 21H
CODE ENDS
END START