关于void

本文介绍了一段C++程序,用于在数组中查找指定位置的第k大和第k小元素,并通过计算这两个元素之间的整数范围来判断该范围是否包含素数。程序使用了二分查找和素数判断算法,展示了C++编程技巧和数据结构应用。

#include<iostream>
#include<cmath>
#include<cstdio>
using namespace std;

long A[100010],n;
long k1,k2;

long sep(int x,int y,int k)
{
	int mid = x + (y-x)/2;
	long i = x,j = y,key = A[mid];
	A[mid] = A[x];
	while(i < j)
	{
		while(i < j && A[j] >= key)
		  j--;
		A[i] = A[j];
		while(i < j && A[i] < key)
		  i++;
		A[j] = A[i];
	}
	A[i] = key;
	if(i == k) return A[i];
	if(i > k) sep(x,i-1,k);
	else if(i < k) sep(i+1,y,k);
}

/*bool*/void prime()
{
	int m = k2 - k1;
	if(m < 2)
	{
		printf("NO\n");
		return;
	}
	else if(m == 2)
	{
		printf("YES\n");
		printf("%d\n", m);
		return ;
	}
	else if(m > 2)
	{
		for(int i = 2; i <= int(sqrt(m))+1; i++)
		  if(m%i == 0)
		  {
		  	printf("NO\n");
			printf("%d\n", m);
		  	return ;
		  }
		printf("YES\n");
		printf("%d\n", m);
		return;
	}
/*	int i;
	if(m<=1) return false;
	for(i=2; i*i<=m; i++)
	  if(m%i==0)
	    return false;
    return true;*/
}

int main()
{
	int k,i;
	cin>>n>>k;
	for(i = 1; i <= n; i++)
	  cin>>A[i];
	k1 = sep(1,n,k);
	k2 = sep(1,n,n-k+1);
	prime();
/*	int m = k2 - k1;
	if(prime())
	  printf("YES\n");
	else
	  printf("NO\n");
	printf("%d\n", m);*/
	return 0;
}



***************************************************************************************

void输出是否会有溢出?若在wikioi上,注释部分可AC,而在void函数内输出则WA


### Java 中 void 关键字的作用和使用场景 #### 1. void 的基本定义 `void` 是 Java 中的关键字,用于表示方法没有返回值。当一个方法被声明为 `void` 时,意味着该方法执行完成后不会返回任何数据[^3]。 #### 2. 为什么需要 void 关键字 虽然从逻辑上看,如果一个方法不返回任何值,可以省略返回类型的声明,但在 Java 中必须显式地使用 `void` 来标明这一点。这是为了提高代码的可读性和一致性,同时也与底层 C/C++ 的设计保持一致。在 C/C++ 中,`void` 不仅用于限定函数返回类型,还用于限定函数参数列表为空的情况。尽管 Java 中取消了后一种用法,但保留了 `void` 作为返回类型的声明方式[^1]。 #### 3. 使用场景 `void` 关键字主要出现在方法声明中,特别是在不需要返回结果的情况下。例如,`main` 方法是 Java 程序的入口点,它通常被声明为 `void`,因为它的职责仅仅是启动程序,而无需返回任何值。 ```java public class Example { public static void main(String[] args) { System.out.println("Hello, World!"); } public void printMessage() { System.out.println("This method has no return value."); } } ``` 在上述代码中,`main` 方法和 `printMessage` 方法都被声明为 `void`,表明它们不返回任何值[^3]。 #### 4. void 的特点 - **不可实例化**:`void` 并不是一个真正的类或对象,因此不能对其进行实例化。 - **对应 Void 类**:在 Java 的标准库中,存在一个名为 `Void` 的包装类(位于 `java.lang.Void`),但它仅仅是一个符号占位符,无法创建其对象实例。 - **编译期检查**:通过强制要求开发者声明返回类型为 `void`,Java 编译器可以在编译阶段检测到错误的返回语句,从而减少潜在的运行时错误。 #### 5. 示例代码 以下是一个简单的例子,展示了如何使用 `void` 关键字: ```java public class VoidExample { public static void main(String[] args) { performAction(); } public static void performAction() { System.out.println("This is a void method."); } } ``` 在此示例中,`performAction` 方法被声明为 `void`,表示它不会返回任何值。 ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值