从键盘输入一个数字n(0≤n≤100),求出1到n的累加和并以十进制显示结果,用汇编语言,尽量简单,谢谢了
#include]
int main()
{
int n=0;
int s=0;
scanf("%d",&n);
for(i=1;i<=n;i++)
s+=i;
printf("%d",s);
}
递归的方法
#include
float fun(int n);
int main()
{
int n=0;
scanf("%d",&n);
printf("%f",fun(n));
system("pause");
}
float fun(int n)
{
int i=0;
int s=0;
i=n;
if(i>0)
s=i+fun(n-1);
else
printf("the answer is :");
return s;
}
你妹 其他编程语言你放倒 C/C++ 这个分类来干吗?
FUCK!
assume cs:codecode segmentstart: mov cx, 10 mov bx, 0 mov ah,1$0: int 21h sub al,30h ;不做输入有效性检查 add bl,al adc bh,0 ;实际上需要,10个9相加也不超过al的范围 loop $0 mov ax, bx call print mov ah,4ch int 21h;print (ax) in decmialprint proc near xor cx,cx mov bx, 10Q0: xor dx,dx div bx xor dx, 0e30h push dx inc cx cmp ax, 0 jnz Q0Q1: pop ax int 10h loop Q1 retprint endpcode endsend start
data segmentmsg db 'input N:$'
data ends
code segment
assume cs:code,ds:data
main proc near
start:
mov ax,data
mov ds,ax
mov dx,offset msg
mov ah,09h
int 21h
call decibin;接收N的子程序
mov cx,bx
mov bx,0
loop1:
add bx,cx;1+2+…N的和存入BX
loop loop1
call crlf
call bini;显示BX中的内容
mov ah,4ch
int 21h
ret
main endp
;------------------------------
decibin proc near;接收N子程序
mov bx,0
newchar:
mov ah,1
int 21h
sub al,30h
jl exit
cmp al,9d
jg exit
cbw
xchg ax,bx
mov cx,10d
mul cx
xchg ax,bx
add bx,ax
jmp newchar
exit:
ret
decibin endp
;------------------------------------
bini proc near;转化为十进制输出子程序
mov cx,10000d
call bin
mov cx,1000d
call bin
mov cx,100d
call bin
mov cx,10d
call bin
mov cx,1d
call bin
ret
bini endp
bin proc near
mov ax,bx
mov dx,0
div cx
mov bx,dx
mov dl,al
add dl,30h
mov ah,02h
int 21h
ret
bin endp
;--------------------------------
crlf proc near;回车换行子程序
mov dl,0dh
mov ah,02h
int 21h
mov dl,0ah
mov ah,02h
int 21h
ret
crlf endp
code ends
end start
4.阶乘:
data segment
jiecheng dw ?
data ends
code segment
main proc far
assume cs:code,ds:data
start:
push ds
sub ax,ax
push ax
mov ax,data
mov ds,ax
mov ah,1
int 21h
sub al,30h
mov cl,al
sub bl,bl
mov bl,1
sub ax,ax
mov al,1
cheng1:
mul bl
add bl,1
cmp bl,7
je n2
loop cheng1
jmp n1
n2:
sub cx,1
jcxz n1
cheng2:
mul bx
add bx,1
loop cheng2
n1:
mov bx,ax
mov ah,2
mov dl,13
int 21h
mov ah,2
mov dl,10
int 21h
call binidec
ret
binidec proc near
mov cx,10000d
call dec_div
mov cx,1000d
call dec_div
mov cx,100d
call dec_div
mov cx,10d
call dec_div
mov cx,1d
call dec_div
ret
dec_div proc near
mov ax,bx
mov dx,0
div cx
mov bx,dx
mov dl,al
add dl,30h
mov ah,2
int 21h
ret
dec_div endp
binidec endp
main endp
code ends
end start
http://zhidao.baidu.com/question/359506996.html?oldq=1
c语言,从键盘中输入一个正整数n分别求1到n之间所有个位数是3或5的数的...
include <stdio.h> int main(){ int n, sum = 0;printf("请输入一个正整数:");scanf("%d", &n);for (int i = 1; i <= n; i++){ int digit = i % 10;if (digit == 3 || digit == 5){ sum += i;} } printf("1到%d之间所有个位数是3或5的数的和为:%d\\n",...
从键盘任意输入一个正整数n(n<10),求fac=n!并输出fac的值
int n, fac = 1;printf("请输入一个正整数n(n<10):\\n");scanf("%d", &n);for (int i = 1; i <= n; i++) { fac *= i;} printf("fac = %d\\n", fac);return 0;} 这里使用scanf函数从键盘输入一个正整数n,然后使用循环计算n的阶乘fac。循环中,从1到n依次乘上每个数...
从键盘读入一个数n,先逆序输出n的各位数,再输出n的各位数之和.
int n,sum=0,x; printf("请输入一个整数:"); scanf("%d",&n); printf("该数的各位之逆序为:"); while(n){ sum+=(x=n%10); printf("%d",x); n\/=10; } printf("\\n该数的各位数之和为:%d\\n",sum);} White_MouseYBZ | 发布于2013-07-12 举报| 评论 7 0 为您推荐: 葱键盘输出...
使用键盘输入一个多位整数n,利用循环实现将这个整数逆序输出?
} printf("逆序输出为:%d\\n", reversed);return 0;} 这里使用scanf函数从键盘输入一个多位整数n,然后使用循环将这个整数逆序输出。循环中,每次取出n的个位数,加入到reversed的末尾,然后将n除以10去掉个位数。最终,reversed中存储的就是n的逆序数。运行程序后,输入一个多位整数,程序会将其逆序...
从键盘输入一个整数n(1≤n≤9),打印出指定的数字图形. 要数字图行不是...
include<stdio.h> int main(){ int i,j,n,p,q;scanf("%d",&n);for(i=1;i<=n;i++){ for(j=1;j<=n-i;j++)printf(" ");for(p=1;p<=i;p++)printf("%d",p);for(q=i-1;q>0;q--)printf("%d",q);printf("\\n");} for(i=1;i<=n-1;i++){ for(j=1;j<...
C语言考试:从键盘输入整数n(n的值不超过10),编程求n!+(n+1)!
include <stdio.h> include <stdlib.h>long factorial(int n) { if(n <= 1) return 1;return n*factorial(n - 1);}int main() { int n;printf("请输入一个正整数 : ",&n);scanf("%d",&n);printf("\\n%d! + (%d + 1)! = %u\\n\\n",n,n,factorial(n) + factorial(n +...
从键盘上任意输入一个整数n,编程计算并输出1~n之间的所有素数及所有素数...
printf("请输入一个大于2的整数:");scanf("%d",&n);l=n;for(;n>=2;n--){ for(i=2;i<n;i++){ if(n%i!=0)\/\/判断其为素数 t=1;1 else { t=2;break;} } if(t==1){ sum+=n;\/\/printf("%d ",n);\/\/输出1-n之间的所有素数 } } printf("1-%d之间的所有素数和为...
编程实现:从键盘输入一个数n,分别求出n的个位数字,十位数字和百位数字...
int num,a,b,c,temp;cout<<"请输入一个三位数:"<<endl;\/\/不知道是几位数,以三位数为例 cin>>num;c=num%10;\/\/个位数c a=num\/100;\/\/百位数为c temp=num%100;b=temp\/10;\/\/b为十位数 return;
...任意一个整数n,计算1到n的和。 输入 从键盘输入任意整数n。 输出1...
include <stdio.h> void main(){ int n;printf("请输入一个整数n=");scanf("%d",&n);int i=1;int sum=0;while(i<=n){ sum=sum+i;i++;} printf("从1到%d的和为%d\\n",n,sum);} 已经调试,成功输出,请采纳 有图有真相 ...
用C语言编写程序从键盘输入一个正整数数n,输出n!
void main(){int n =0,m=0;printf("请输入一个正整数:")scanf("%d",&n);m=Func(n);printf("%d!=%d\\n",n,m);} 在以上程序代码中,Func()为递归函数,主函数main()中接收键盘输入整数值后,调用Func()递归函数,首层m=n*(n-1)!,继续递归调用,m=n*(n-1)(n-2)!,...
道卞牛痘: 'vbs脚本文件 dim n,k,lj k=0 do while k n = inputbox("请输入0到100之间整数") if n>100 or n k = k+1 if k>=3 thenmsgbox "你已经3次输入了不符合要求的数字,再见!"else msgbox "输入的数值不符合要求,请重新输入!" end if elselj=0 for i=1 to n lj=lj+i next msgbox "从0累计到 " & n & " 的值是:" & lj exit do end if loop
云溪区13187719650: 用C语言编写一个程序:从键盘输入n(0<N<100)个整数,计算并输出其中出现次数最多且数值最大的元素. - ?
道卞牛痘: 1:次数最多2:在次数最多的基础上,数值最大 _______________________________________________以下为程序:#include <iostream>// 设置最大值#define MAX 100 typedef struct record { int number[MAX]; int counter[MAX]; }record; int ...
云溪区13187719650: 编写程序:从键盘输入n(0<n<100)个整数,计算并输出其中出现次数最多且数值最大的元 - ?
道卞牛痘: 这个程序查询结果是不是可以理解为:先计算次数出现最多的,在出现次数相等的情况下,数值最大的? 因为这个问题是有矛盾的,出现次数最多的不一定数值最大 用c++写的,思路都在,vb很久没有用了.不想去看了.希望思路对你有用 #...
云溪区13187719650: 输入一个正整数n(1< n ≤10),再输入n个整数,输出平均值(保留2位小数). - ?
道卞牛痘: #include<stdio.h> void main() { int n,i,sum=0; int a[10]; float p; printf("请输入n(0-10):\n"); scanf("%d",&n); for(i=0;i<n;i++) { scanf("%d",a[i]); sum=sum+a[i]; } p=sum*1.0/n; printf("平均值为:%.2f\n",p); }
云溪区13187719650: 从键盘上输入一个正整数n(n≤10),求n的阶乘并输出结果 - ?
道卞牛痘: int n,P;P=1; scanf("%d",&n); for(i=1;i{ P=P*i;} printf("%d",P); 望采纳,谢谢~
云溪区13187719650: 在数组中查找指定元素.输入一个正整数n(1≤n ≤10),然后输入n个整数存入数组a中,再输入一个整数x,在 - ?
道卞牛痘: #include int search(int list[],int n,int x) { int i; for(i=0;i if(list[i]==x)return i; return -1; } main() { int list[10],n,x,i; printf("input n(1 scanf("%d",&n); printf("input %d numbes:\n",n); for(i=0;i scanf("%d",&list[i]); printf("input x:"); scanf("%d",&x); ...
云溪区13187719650: C语言题目:输入一个正整数n(1<n≤10),再输入n个正数,输出平均值(保留两位小数),并逆序输出这些数. - ?
道卞牛痘: #include<stdio.h> int main(void) { int a[10]; int n,i; float average,sum=0; //sum定义成float才合适 printf("Please input n:"); scanf("%d",&n); printf("Please input %d integers:",n); //移动到循环外 for(i=0;i<n;i++) //这里多了分号 { scanf("%d"...
云溪区13187719650: 输入一个正整数n (1<n≤10),再输入n个整数,将它们存入数组a中. - ?
道卞牛痘: #include <stdio.h> #include <stdlib.h>int main(void) {int n = 0, i;int min = 0,minpos = 0;int* a = NULL;printf("请输入你要输入多少整数\n");scanf("%d",&n); a = (int*)malloc(n*sizeof(int)); if(a == NULL) return -1; printf("请输入这...
云溪区13187719650: 从键盘输入一个整数n(n≤10)和n个整数,存入数组a中,先依次输出各个数组元素的值,然后找出最大值,并输 - ?
道卞牛痘: int n,a[10],i,j,t; cout<<"输入一个整数N(N<10)\n"; cin>>n; cout<<"输入N个整数:\n"; for(i=0;i<n;i++) { cin>>a[i]; } for(i=0;i<n;i++)//输出 { cout<<a[i]<<" "; } for(i=0;i<n;i++) { for(j=i+1;j<n;j++) { if(a[i]<a[j]) {t=a[i]; a[i]=a[j]; a[j]=t; } cout<<"排序后:\n"; for(i=0;i<n;i++) cout<<a[i]<<" "; cout<<"最大的为:"<<a[0]; 这样及排序当然也就找到最大值了
云溪区13187719650: 输入一个正整数n(1<n≤10),再输入n个整数,将最小值与第一个数交换,最大值与最后一个数交换. - ?
道卞牛痘: 可以参考下面的代码: #include <stdio.h> void main() { int i,j=0,k=0,t,n,min,max,a[10]; printf("输入整百数度的个数: "); scanf("%d",&n); printf("输入%d个整数: ",n); scanf("%d",&a[0]); max=a[0];min=a[0]; for(i=1;i<n;i++) { scanf...