鱼C论坛

 找回密码
 立即注册
查看: 2147|回复: 3

关于C++中嵌套函数的问题。、

[复制链接]
发表于 2014-4-4 12:02:30 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

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;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2014-4-4 12:50:33 | 显示全部楼层
傻逼了,解决了~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-4-4 13:09:23 | 显示全部楼层
哦!请教一下,最后你是怎么解决的呢!{:2_27:}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-4-4 16:05:11 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-12 18:36

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表