汇编程序,目的是键盘输入3个数,然后调用子程序求三个数中最大值,结果在主程序中显示。看看我哪里错了
可以参考下面的代码:
#include
int main()
{int a,b,c,d;
int max(int x,int y);
printf("请输入三个任意整数:
");
while(scanf("%d %d %d",&a,&b,&c)!=-1)
{d=max(a,max(b,c))
printf("max=%d
",d);
}
return 0;
}
int max(int x,int y)
{
return x>y?x:y;
}
扩展资料:C语言isspace()函数:判断一个字符是否是空白符
C语言isprint()函数:判断一个字符是否是可打印字符
C语言islower()函数:判断一个字符是否是小写字母
C语言ldexp()函数:返回x乘以2的exponent次方(次幂)的值
C语言abs()函数:求整数的绝对值
C语言div()函数:求两个数的商和余数
C语言fmod()函数:求x/y的余数(针对浮点数)
参考资料来源:百度百科-C语言函数
#include
int main(void){
int a,b,c,max;
printf("输入三个数:
");
scanf("%d, %d, %d",&a,&b,&c);
max=a;
if(max<b)
max=b;
if(max<c)
max=c;
printf("max=%d",max);
return 0;
输入三个数:
1,2,3
max=3
扩展资料:printf函数使用注意事项
1、域宽
%d:按整型数据的实际长度输出。
如果想输出指定宽度可以指定域宽,%md-->m域宽,打印出来以后,在控制台上,显示m位;
如果我们要打印的数的位数如果超过我们设定m则原样输出;
如果我们要打印的数的位数如果小于我们设定的位数,则补空白,具体如下:
如果m为正数,则左对齐(左侧补空白);
如果m为负数,则右对齐(右侧补空白)。
2、转义字符
如果想输出字符"%",则应该在“格式控制”字符串中用连续两个%表示。
如:printf("%f%%",1.0/3);输出结果:0.333333%。
改过、调试通过的代码:
data segment
data ends
code segment
assume cs:code,ds:data
start:
mov ax,data
mov ds,ax
mov ah,01h
int 21h
sub al,30h
mov bl,al
mov ah,2 ;原来这一段错了
mov dl, 0ah
int 21h
mov ah,2
mov dl, 0dh
int 21h
;sub al,30h 这一条多余
mov ah,01h
int 21h
sub al,30h
mov bh,al
mov ah,2 ;原来这一段错了
mov dl, 0ah
int 21h
mov ah,2
mov dl, 0dh
int 21h
mov ah,01h
int 21h
sub al, 30h ;第3个数也要跟前2个一样处理
mov ch,al
mov ah,2 ;加一个回车换行
mov dl, 0ah
int 21h
mov ah,2
mov dl, 0dh
int 21h
call wangyi
mov dl,cl
add dl,30h
mov ah,02h
int 21h
mov ax,4c00h ;结束代码必须放在这里,不能放在子程序后面
int 21h
;11111111111111111111111111111111111111111111111111
wangyi proc near
cmp bl,bh
ja l1
jb l2
l1:
mov bh,bl
jmp l2
l2:
cmp bh,ch
ja l3
jb l4
l3:
mov cl,bh
jmp exit ; 这里要跳过L4
l4:
mov cl,ch
exit: ;这里加一个标号
ret
wangyi endp
code ends
end start
修改过的地方,都加了注释。
你原来程序中的错误:
回车换行的代码错了
子程序可以放在代码段中主程序前面,或主程序后面,不能夹在主程序中间。
第3个数输入后未正确处理
子程序里流程有一处遗漏了跳转
至于程序中一些不影响运行结果的地方,保留了原样。
CODE SEGMENT
ASSUME CS:CODE
START:
MOV AH, 1
INT 21H
MOV BL, AL
MOV AH, 1
INT 21H
MOV BH, AL
MOV AH, 1
INT 21H
MOV CH, AL
CALL WANGYI
MOV DL, CL
MOV AH, 2
INT 21H
MOV AH, 4CH
INT 21H
WANGYI:
CMP BL, BH
JB L2
MOV BH, BL
L2: CMP BH, CH
JB L4
MOV CL, BH
JMP EXIT
L4: MOV CL, CH
EXIT: RET
CODE ENDS
END START
用C语言编程,问题是:由键盘输入3个整数a,b,c然后按由小到大顺序输出...
include <stdio.h> void main(){ int a,b,c,max,min,mid;scanf("%d",&a);scanf("%d",&b);scanf("%d",&c);if(a<b)min=a;else min=b;if(min<c)min=c;if(a>b)max=a;else max=b;if(max<c)max=c;if(a!=max&&a!=min)mid=a;if(b!=max&&b!=min)mid=b;if(c!=...
编写C程序,从键盘输入三个整数,然后输出其中最小的数。
include <stdio.h> void main(){ int a,b,c,min;scanf("%d%d%d",&a,&b,&c);min=a;if(min>b) min=b;if(min>c) min=c;printf("min=%d\\n",min);}
怎么用C语言编写一个程序,输入三个数值,然后输出其中最大者。
printf("输入第三个数:");scanf("%d",&c);if(a<b) \/\/比较前两个数,如果第二个数大,就把第一个数换走,否则不换 a=b; \/\/此时第一个数是最大的 if(a<c) \/\/比较第一个数与最后一个数,如果最后一个数大,就把第一个数换走,否则不换 a=c; \/\/此时第一个数是最大...
c语言 从键盘上输入三个整数,然后按逆序输出
include <stdio.h>#include<string.h>int main(){ int a[3],i; for(i=0;i<3;i++) scanf("%d",&a[i]); for(i=2;i>=0;i--) printf("%d ",a[i]); return 0;}\/*运行结果: 1 2 33 2 1*\/
vfp程序设计题 题目 从键盘输入3个数,然后找出其中的最大值和最小值...
2."教授" $ ZH 这是最简单的表达式,也可以复杂一点: ZH="教授" .or. ZH="副教授"第2题的意思是:表的字段ZH中存储的是职称,字符型的,包括教授、副教授、讲师、助教等,给出一个判断职称 是教授或副教授的逻辑表达式,当职称是教授或副教授时,表达式的值为真(.T.)。给你的第一个...
编写实现:从键盘输入一个三位十进制整数,然后分别输出该整数的百位...
include "iostream"using namespace std;int main(){ int a;int b,c,d;cout << "请输入一个三位数:" << endl;cin >> a;cout << endl;b=a\/100;c=(a%100)\/10;d=(a%10);cout << "百位:" << b <<endl;cout << "十位:" << c <<endl;cout << "个位:" << d <...
C程序:要求其有3个整数a、b、c,由键盘输入,输出其中最大的数
上来先5T头地一下,佩服楼主- -,打开VC++6.0(中文版的) 然后点“文件”,点新建,上面点Files然后选 C++ Source File,旁边输入文件名 ,点确定,然后把下面的代码复制进去就好了 include <stdio.h> int max(int a,int b){ return(a>b?a:b);} void main(){ int a,b,c;scanf("%d...
c语言程序问题,要求从键盘输入3个变量的值,a=10,b=20,c=30,然后交换3...
main(){ int a,b,c,t;printf("Enter a,b,c:");scanf("%d%d%d",&a,&b,&c);t=a;a=b;b=c;a=t; \/\/c=t才对.printf("a=%d b=%d c=%d\\n",a,b,c);}
c++程序:通过键盘输入3个数ABC,求出最大的并输出
include<iostream.h> void main(){ int a,b,c;int max;cin>>a>>b>>c;max=a;if(a<b)max=b;if(b<c)max=c;cout<<max<<endl;}
从键盘上输入3个整数a,b,c,要求按大小顺序输出的流程图
当然,实际编程中我们可能不会手动编写这样的流程图,而是使用编程语言提供的排序函数,如Python中的sorted()函数或Java中的Arrays.sort()方法,这可以大大简化代码。在进行排序时,我们还需要考虑一些特殊情况。例如,如果输入的三个整数中存在两个或三个相同的数,它们的相对位置可能会改变。此外,如果输入...