|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
题目要求是:判断几个数,若本身不是素数,判断左右两边与之最近的素数, 并输出长度,若长度相等,输出左边的,若本身是素数,则输出本身,长度输出0.
下面是我写的一个程序,报错是:'sushu' : local function definitions are illegal,我网上查了下说是不能在函数里定义函数,但是sushu这个函数里没有定义函数啊,研究好久了,就是不知道问题在哪里。。望各位朋友大神帮忙!!谢谢
以下是显示出问题的程序:
int sushu(int a) //判断否为素数。
{
int j;
for(int i=2;i<a;i++)
{
if( a%i==0)
{
j=0;
}
}
if( j!=0 )
{
return a;
}
return 0;
}
以下是总程序:
————————————————————————————————————————————————————————————————————————————————————————————————————
#include<iostream>
int sushu(int a);
void main()
{
int n;
int *a=new int[n];
std::cout <<"请输入测试组数:"<<"\n";
std::cin >> n;
for(int i=0;i<n;i++)
{
std::cin >> a[i];
}
int s;
s=sushu(a[i]);
std::cout << s;
int len1,len2;
for(int j=0;j<n;j++)
{
static s1=a[j];
static s2=a[j];
int yuan=a[j]; //原数
if( sushu(s1)!=s1 ) //判断左边距离最短的素数
{
s1=s1-1;
}
len1=yuan-s1;
if( sushu(s2)!=s2 ) //判断右边距离最短的素数
{
s2=s2+1;
}
len2=s2-yuan;
if( len1<=len2 ) //长度比较
{
std::cout << "素数长度是" << len1 <<"\n";
std::cout << "此素数是" << a[j]-len1 <<"\n";
}
else
{
std::cout << "素数长度是" << len2 <<"\n";
std::cout << "此素数是" << a[j]+len2 <<"\n";
}
}
int sushu(int a) //判断否为素数。
{
int j;
for(int i=2;i<a;i++)
{
if( a%i==0)
{
j=0;
}
}
if( j!=0 )
{
return a;
}
return 0;
} |
|