C语言程序编程问题: 有1,2,3,4,5,6,7,8,9这九个数字,选择其中三个数字,使其和为偶数

C语言程序编程问题: 有1,2,3,4,5,6,7,8,9这九个数字,选择其中三个数字,使其和为偶数,第1张

修改如下:

//---------------------------------------------------------------------------

#include <stdio.h>

#include <stdlib.h>

int main()

{

int i,j,k,sum,count_n=1

for(i=1i<10i++)

for(j=i+1j<10j++)

for(k=j+1k<10k++)

{

sum=i+j+k

if(sum%2==0 &&i!=j &&i!=k &&j!=k)

{

printf("%d+%d+%d=%-2d\t",i,j,k,sum)

if(count_n%3==0)

{

printf("\n")

}

count_n++

}

}

printf("\nCount number is:%d\n",count_n)

system("pause")

return 0

}

//---------------------------------------------------------------------------

code segment

assume cs:code

start:

mov ax,0ffffh 测试用的,你可以修改为任何有效的值

mov cl,16 ax是一个字,有16位二进制

mov dl,0 用于累加ax中1的个数

a:

rol ax,1 循环左移1称,16次循环后复原

jnc next 该位是0,则CF=0,这里就是测试CF的值,为0则跳转不累加

inc dl CF=1时,dl+1

next:

loop a 循环结构

add dl,30h 将dl的值转为ASCII码

cmp dl,'9' 大于9则是A-F或者10

jbe print 小于或者等于0则不必再转化ASCII码

add dl,7 如果是A-F则转化

cmp dl,'F' 这步关键,如果AX的值是0FFFFH,则dl=16=10H,没有这步将会输出G

ja print_10 AX=0FFFFH则跳转进行特殊处理

print:

mov ah,02h

int 21h

print_10:

mov dl,31h 特殊情况只有一种,即dl=10H,故只要两次分别输出字符1和0即可

mov ah,02h

int 21h

mov dl,30h

int 21h

mov ah,4ch

int 21h

code ends

end start

#include <stdio.h>

main()

{

int x,y

scanf("%d\n",&x)

if(x<1) y=x

else if(x<10) y=2*x+1

else y=5*x-17

printf("%d\n",y)

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12102822.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存