为什么我得到“嵌套功能被禁用......”我的代码错误? [英] Why Do I Get "nested functions are disabled..." Error in my Code?

查看:76
本文介绍了为什么我得到“嵌套功能被禁用......”我的代码错误?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

基本上,一个程序可以找到数字的最大素数因子。不知道逻辑是否正确,因为我无法运行它来测试它。我知道这很长。但请原谅我。

  // largest_prime.c 
#include< stdio.h>
int main(){
int num,large;
int prime(int);
int lprime(int);
printf(Enter number:);
scanf(%d,#);
large = lprime(num);
printf(最大素数=%d \ n,大);
返回0;
}

int lprime(int num){
int i = num-1,large;
while(i!= - 1){
if(num%i == 0){
if(prime(i)== 1){
large = i;
i = -1;
}
i--;
}
返回大;
}

int prime(int num){
int prime,i = num-1;
while(i!= - 1){
if(num%i == 0){
if(i!= 1){
i = -1;
返回0;
}
其他
返回1;
}
i--;






我在终端输出这个数据(我使用Mac )使用GCC:

  largest_prime.c:函数'lprime':
largest_prime.c:26:error:嵌套函数被禁用,使用-fnested函数重新启用
largest_prime.c:39:错误:输入结束时的语法错误

我尝试了-fnested-functions来重新启用。我得到:

  largest_prime.c:函数'lprime':
largest_prime.c:39:error:syntax输入结束时出错

请帮助!

解决方案

lprime失踪追踪'}'(实际上我相信你在追踪'}'时丢失了)


Basically, a program to find the largest prime factor of a number. Don't know if the logic is correct cuz I can't run it to test it. I know this is long. But please forgive me.

//largest_prime.c
#include <stdio.h>
int main() {
    int num,large;
    int prime(int);
    int lprime(int);
    printf("Enter number: "); 
    scanf("%d",&num);
    large = lprime(num);
    printf("Largest Prime = %d\n",large);
    return 0;
}

int lprime(int num) {
    int i=num-1,large;
    while (i!=-1) {
        if (num%i==0) {
            if (prime(i)==1) {
                large=i;
                i=-1;
            }
            i--;
        }
        return large;
    }

    int prime(int num) {
        int prime,i=num-1;
        while (i!=-1) {
            if(num%i==0) {
                if(i!=1) {
                    i=-1;
                    return 0;
                }
                else
                    return 1;
            }
            i--;
        }
    }

I get this as output at terminal (I use Mac) using GCC:

largest_prime.c: In function ‘lprime’:
largest_prime.c:26: error: nested functions are disabled, use -fnested-functions to re-enable
largest_prime.c:39: error: syntax error at end of input

I tried -fnested-functions to re-enable. I get:

largest_prime.c: In function ‘lprime’:
largest_prime.c:39: error: syntax error at end of input

Please Help!

解决方案

lprime is missing trailing '}' (in fact i believe you lost while's trailing '}')

这篇关于为什么我得到“嵌套功能被禁用......”我的代码错误?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆