4-1 简单输出整数 (10分)

4-1 简单输出整数   (10分)

本题要求实现一个函数,对给定的正整数N,打印从1到N的全部正整数。

函数接口定义:

void PrintN ( int N );

其中N是用户传入的参数。该函数必须将从1到N的全部正整数顺序打印出来,每个数字占1行。

裁判测试程序样例:

#include <stdio.h>

void PrintN ( int N );

int main ()
{
    int N;

    scanf("%d", &N);
    PrintN( N );

    return 0;
}

/* 你的代码将被嵌在这里 */

输入样例:

3

输出样例:

1
2
3
void printN(int N){
	for(int i=1;i<=N;i++){
		printf("%d\n",i);
	}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个简单的8086汇编程序,可以判断输入的一个10-300内的整数是否为素数: ``` DATA SEGMENT INPUT DB ? PRIME DB 'PRIME$', '$' NOT_PRIME DB 'NOT PRIME$', '$' DATA ENDS CODE SEGMENT START: MOV AX, DATA MOV DS, AX ; 读取输入的整数 MOV AH, 1 INT 21H ; 将输入的字符转换为数字 SUB AL, 30H ; 判断是否小于10或大于300 CMP AL, 10 JL NOT_PRIME_MSG CMP AL, 300 JG NOT_PRIME_MSG ; 判断是否为素数 MOV BL, 2 MOV BH, 0 DIV BL MOV CL, AL MOV CH, 0 MOV DL, 0 CHECK_PRIME: ADD BL, 1 CMP BL, CL JG PRIME_MSG MOV AH, 0 MOV DX, 0 DIV BL CMP AH, 0 JZ NOT_PRIME_MSG JMP CHECK_PRIME PRIME_MSG: MOV AH, 9 MOV DX, OFFSET PRIME INT 21H JMP END NOT_PRIME_MSG: MOV AH, 9 MOV DX, OFFSET NOT_PRIME INT 21H END: MOV AH, 4CH INT 21H CODE ENDS END START ``` 该程序的具体实现如下: 1. 首先声明了一个数据段和代码段,并且在数据段中定义了用于存储输入的变量 `INPUT`,以及输出素数和非素数的字符串 `PRIME` 和 `NOT_PRIME`。 2. 程序从 `START` 标签处开始,将数据段的地址存储到 `DS` 寄存器中。 3. 程序使用 `INT 21H` 中断读取一个字符,然后将其转换为数字。 4. 程序检查输入的数字是否小于 10 或大于 300,如果是,就输出“NOT PRIME”字符串并结束程序。 5. 如果输入的数字在 10 和 300 之间,则程序将 2 存储到 `BL` 寄存器中,并将输入的数字存储在 `AL` 寄存器中。 6. 然后程序将 `AL` 寄存器中的数字除以 `BL` 寄存器中的数字,将商存储在 `AL` 寄存器中,余数存储在 `AH` 寄存器中。如果余数为零,说明该数字不是素数,程序输出“NOT PRIME”字符串并结束程序。 7. 如果余数不为零,程序将 `BL` 寄存器中的数字加一,并将其与 `AL` 寄存器中的数字进行比较。如果 `BL` 大于 `AL`,说明该数字是素数,程序输出“PRIME”字符串并结束程序。 8. 如果 `BL` 小于等于 `AL`,程序使用 `DIV` 指令再次将 `AL` 寄存器中的数字除以 `BL` 寄存器中的数字,将商存储在 `AL` 寄存器中,余数存储在 `AH` 寄存器中。如果余数为零,说明该数字不是素数,程序跳转到步骤 6。如果余数不为零,程序跳转到步骤 7。 9. 程序结束。 需要注意的是,该程序并不是最优解,它只是一个简单实现。如果需要更高效的素数判断算法,可以参考其他资料。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值