' N'是未声明的错误消息以及其他可能的编程错误

时间:2014-09-24 23:10:03

标签: c++ function

我是编程的新手,我正在尝试计算n阶乘,我不知道这是否会起作用,但目前我收到的错误是“n”未声明。正在使用功能。我真的很感激你能给我的关于他的计划的任何提示

#include <math.h>
#include <stdio.h>

#define PI 3.14159
#define e 2.72


void printDirections (void);
double readValue (void);
double calcNFact (double n);
void printN (void);

int main (void)
{
    double n, n_fact;
    double eq1, eq2, eq3, eq4;

    printf ("This program Calculates n factorial. \n");

// print directions
    printf ("Enter the value of n and the program\n will calculate n!");

// read the value of n from the user
    printf ("Enter n: /n");
    n = readValue ();

// Calculate n factorial
    n_fact = eq1 * eq2 * eq3 *eq4;


// print the results
    printN (n);

    return 0;





}

// Prints the directions
    void printDirections (void)
{
    printf ("Enter the value of n and the program\n will calculate n!");
    return ;
}

// Read the value of n from the user
double readValue (void)
{
    double value;
    printf ("Enter n: /n");
    scanf ("%lf", &value);

    return (value);


}

// Calculate and return n factorial, pass in n
double calcNFact (double n)
{
 double n_fact, eq1, eq2, eq3, eq4;
 eq1 = ((2 * n) + (1 / 3)) * PI;
 eq2 = sqrt (eq1);
 eq3 = pow (e, -n);
 eq4 = pow (n, n);
 n_fact = eq1 * eq2 * eq3 * eq4;

 return n_fact;

}
//print n and n factorial
void printN (void)
{
  printf ("\n n: %.1f \n", n);
  printf ("\n n!: %.2f \n", n_fact);

  return;

}

3 个答案:

答案 0 :(得分:1)

您的printN函数无法读取变量nn_fact,因为它们超出了范围。

Variable Scope in C++

此外,函数定义void printN (void)中的参数签名与函数调用printN (n)不一致。

答案 1 :(得分:1)

nprintN函数(以及n_fact)内未声明。 printN应接受它们作为参数:

void printN (double n, double n_fact) {...}

所以你称之为:

printN(n, n_fact);

答案 2 :(得分:0)

您的变量n / n_fact不在函数printN的范围内,这就是为什么它说&#34;未声明&#34;。

一种解决方案是将n / n_fact的值传递给您的函数printN