正确缺简清的代码如下:
#include<stdio.h>
void main()
{
int a,b,c
a=6
b=7
c=a+b
printf("c=%d”,c)
}
在你的代码中最后的输出是错误的,从哪里来的d,而且你要输出的是c吧,就算是d你也没有定义d,C语言的代码一定要先定义再使用,把最后输出的d改为c就可以了,还有就是标点符号要注意,不要写错,咐慧一定要注意,要仔细。伏前
资料扩展相应的可以写出求加减乘除的代码如下:
#include<stdio.h>
void main()
{
int a,b
scanf("%d%d"&a,&b)
printf("%d\n",a+b)
printf("%d\n",a-b)
printf("%d\n",a*b)
printf("%d\n",a/b)
return 0
}
DATA SEGMENT 数据段MSG1 DB 'PLEASE INPUT A',0DH,0AH,'$'
MSG2 DB 0DH,0AH,'PLEASE INPUT B',0DH,0AH,'$'
MSG3 DB 0DH,0AH,'RESULT IS',0DH,0AH,'$'
MSG4 DB 0DH,0AH,'ERROR',0DH,0AH,'$'
DATA ENDS
EXTRA SEGMENT附加段
EXTRA ENDS
STACK SEGMENT堆栈段
STAPN DB 100 DUP (00H) ;定义100字节空间
TOP EQU LENGTH STAPN
STACK ENDS
CODE SEGMENT
MAIN PROC FAR 过程定义语句
ASSUME CS:CODE,DS:DATA,ES:EXTRA,SS:STACK
START:
MOV AX,DATA
MOV DS,AX
MOV AX,EXTRA
MOV ES,AX
MOV AX,STACK
MOV SS,AX
写入代码
LEA DX,MSG1 将MSG1首地雀迟址值赋给DX
MOV AH,09H 调用09H指令,显示字符串,DS:DX=串指令
INT 21H
MOV AH,01H
INT 21H读入一个数,放在AL中,读进来的数为ASCII码
SUB AL,30H 转为原来的数,因为30H为0的ASCLL码
MOV BL,AL ;由于后期AL需要再度被赋值,固将 *** 作数A存放在BL中
MOV DX,OFFSET MSG2 将首地址存放在DX中
MOV AH,09H
INT 21H
MOV AH,01H
INT 21H
SUB AL,30H 转为原来的数,例如34H,原来的数实际上为我们由键盘输入的4
ADD AL,BL两数相加,根据孝升条件(8)假如数字只和大于10则显示错误
CMP AL,0AH 假如大于等于10则错误
JAE ERROR 相加之和大于等于10则跳转到ERROR,否则顺序执行
MOV BL,AL
MOV DX,OFFSET MSG3
MOV AH,09H
INT 21H
ADD BL,30H 将BL众数据转换巧岁老为ASCII码,因为输出结果是个位数且只输出一个字符
MOV DL,BL 将待显示字符的ASCLL码放入DL中
MOV AH,02H
INT 21H
退出DOS系统
MOV AH,4CH
INT 21H
RET
ERROR:LEA DX,MSG4
MOV AH,09H
INT 21H
RET
MAIN ENDPMAIN过程结束
CODE ENDS 代码段结束
END START 整个源代码结束
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)