输入n,m(n<m)求范围内的素数。

首先我们先定义需要用到的变量

int a[101],i,j,k,n,m;  //a用来存储n到m间的数,i,j,k来做循环变量,n和m接收键盘输入的数

然后接收数,并存入数组中

	scanf("%d%d",&n,&m);	//从键盘上输入n,m 
	for(i=1;n<m;i++)		//生成n,m间的数并存入数组a 
		a[i]=++n;

把a数组中每一个数都拿出来做一次判断是否为素数,当前面判断为素数数进入循环时就跳出出进行下一个数的判断,如果当前数不是素数就变为0。

	for(i=1;i<101;i++)  	
	{
		for(j=2;j<a[i];j++)
		{
			if(a[i]==0) break;
			if(a[i]%j==0) a[i]=0;
		}
	}

最后输出这个数组里的数,非0的输出,十个一行。

	for(i=1;i<101;i++)
	{
		if(a[i]!=0)
		{
			printf("%5d",a[i]);
			k++;
		}
		if(k==10)
		{
			printf("\n");
			k=0;
		}
	}

下面是完整代码

#include<stdio.h>
main()
{
	int a[101],i,j,k,n,m;
	j=k=0;
	scanf("%d%d",&n,&m);	
	for(i=1;n<m;i++)		
		a[i]=++n;
	for(i=1;i<101;i++)  	
	{
		for(j=2;j<a[i];j++)
		{
			if(a[i]==0) break;
			if(a[i]%j==0) a[i]=0;
		}
	}
	for(i=1;i<101;i++)
	{
		if(a[i]!=0)
		{
			printf("%5d",a[i]);
			k++;
		}
		if(k==10)
		{
			printf("\n");
			k=0;
		}
	}
	return 0;
}


### 如何正确使用 `scanf` 函数输入两个正整数 在 C 语言中,`scanf` 是一个用于从标准输入流(通常是键盘)读取数据的标准库函数。为了正确地使用 `scanf` 来接收两个正整数将其存储到变量中,可以按照以下方式实现。 #### 示例代码 以下是通过 `scanf` 接收两个正整数的完整示例: ```c #include <stdio.h> int main() { int a, b; // 提示用户输入 printf("请输入两个正整数: "); // 使用 scanf 读取两个整数值 scanf("%d %d", &a, &b); // 输出接收到的值以验证输入是否成功 printf("您输入的第一个正整数是:%d\n", a); printf("您输入的第二个正整数是:%d\n", b); return 0; } ``` 上述程序的功能如下: - 首先提示用户输入两个正整数。 - 调用 `scanf` 函数来获取用户的输入将这些值分别存入变量 `a` 和 `b` 中[^1]。 - 最后打印这两个变量的内容,以便确认输入的成功与否。 需要注意的是,在调用 `scanf` 时,格式字符串中的 `%d` 表示期望读取的数据类型为整型,而地址运算符 `&` 则用来传递变量的内存地址,使得 `scanf` 可以修改原始变量的值[^2]。 另外,如果希望进一步确保输入的有效性(即只接受正整数),可以在读取之后加入额外的校验逻辑。例如: ```c if (a > 0 && b > 0) { printf("输入有效。\n"); } else { printf("错误:请输入有效的正整数。\n"); } ``` 此段代码会检查变量 `a` 和 `b` 是否均为大于零的整数,从而提高程序健壮性和用户体验[^3]。 #### 关于最大公约数和最小公倍数的应用扩展 当涉及到处理两个正整数时,除了简单的输入外,还可以利用它们来进行更复杂的数学运算,比如解两者的 **最大公约数** 者 **最小公倍数**。这不仅展示了如何应用基本输入功能,还体现了实际编程场景下的综合能力[^4]。 --- ###
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值