奔跑的鸭蛋 发表于 2014-4-4 12:02:30

关于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;
}

奔跑的鸭蛋 发表于 2014-4-4 12:50:33

傻逼了,解决了~

青玄 发表于 2014-4-4 13:09:23

哦!请教一下,最后你是怎么解决的呢!{:2_27:}

奔跑的鸭蛋 发表于 2014-4-4 16:05:11

青玄 发表于 2014-4-4 13:09 static/image/common/back.gif
哦!请教一下,最后你是怎么解决的呢!

。。。少了个},所以说傻逼了~~还有一点逻辑上的小错误~~现在搞定了~{:1_1:}
页: [1]
查看完整版本: 关于C++中嵌套函数的问题。、