关于C++中嵌套函数的问题。、
题目要求是:判断几个数,若本身不是素数,判断左右两边与之最近的素数, 并输出长度,若长度相等,输出左边的,若本身是素数,则输出本身,长度输出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;
std::cout <<"请输入测试组数:"<<"\n";
std::cin >> n;
for(int i=0;i<n;i++)
{
std::cin >> a;
}
int s;
s=sushu(a);
std::cout << s;
int len1,len2;
for(int j=0;j<n;j++)
{
static s1=a;
static s2=a;
int yuan=a;//原数
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-len1 <<"\n";
}
else
{
std::cout << "素数长度是" << len2 <<"\n";
std::cout << "此素数是" << a+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;
} 傻逼了,解决了~ 哦!请教一下,最后你是怎么解决的呢!{:2_27:} 青玄 发表于 2014-4-4 13:09 static/image/common/back.gif
哦!请教一下,最后你是怎么解决的呢!
。。。少了个},所以说傻逼了~~还有一点逻辑上的小错误~~现在搞定了~{:1_1:}
页:
[1]