Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 我正在创建一个函数类型的程序,并且会不断地说:(.text+0xe0):未定义的对_C++_C_Function_Switch Statement - Fatal编程技术网

C++ 我正在创建一个函数类型的程序,并且会不断地说:(.text+0xe0):未定义的对

C++ 我正在创建一个函数类型的程序,并且会不断地说:(.text+0xe0):未定义的对,c++,c,function,switch-statement,C++,C,Function,Switch Statement,我定义的每个函数都会弹出一个错误: C:\Users\ALVARO~1\AppData\Local\Temp\cc7yNnth.o Ejercicio.cpp:.text+0xe0:对'circfloat,float'的未定义引用 这是我的密码: float circ(float pi, float radio); float cuad(float lado); float rect(float l1, float l2); float triang(float b, float h); in

我定义的每个函数都会弹出一个错误:

C:\Users\ALVARO~1\AppData\Local\Temp\cc7yNnth.o Ejercicio.cpp:.text+0xe0:对'circfloat,float'的未定义引用

这是我的密码:

float circ(float pi, float radio);
float cuad(float lado);
float rect(float l1, float l2);
float triang(float b, float h);

int main () {
    float pi=3.14;
    char opc;
    printf("Introuce 1 para ciculo");
    printf("2 para cuadrado");
    printf("3 para rectangulo");
    printf("4 para triangulo");
    scanf("%c", &opc);
    while(opc != 4)

    switch(opc) {
        case 1:
            float radio;
            printf("Introduce el valor del radio: ");
            scanf("&f", radio);
            printf("El area del circulo es: %f", circ(pi, radio));
            system("pause");

        case 2:
            float lado;
            printf("Introduce el valor del radio: ");
            scanf("&f", lado);
            printf("El area del cuadrado es: %f", cuad(lado));
            system("pause");

        case 3:
            float ancho, largo;
            printf("Introduce el valor del ancho: ");
            scanf("&f", ancho);
            printf("Introduce el valor del largo: ");
            scanf("&f", largo);
            printf("El area del rectangulo es: %f", rect(ancho, largo));
            system("pause");

        case 4:
            float base;
            float altura;
            printf("Introduce el valor de la base: ");
            scanf("&f", base);
            printf("Introduce el valor de la altura: ");
            scanf("&f", altura);
            printf("El area del triangulo es: %f", triang(base, altura));
            system("pause");
    }
}

出了什么问题?

您已声明但未实现该函数

float circ(float pi, float radio);
e: 你想要的东西可以通过以下方法实现:我假设圆面积

float circ(float pi, float radius) {
    return pi * (radius * radius);
}
顺便说一下,您在数学标题中定义了一个M_PI常量。您可以将函数定义为:

#include <math.h>

float circ(float radius) {
    return M_PI * (radius * radius);
}
如果你能试着用英语编写代码,这样每个人都能更好地理解你的思维过程。

我定义的每个函数,不!您声明但未定义的每个函数

声明是让编译器验证您是否正确使用的东西

定义是事物的构造;因为函数将函数的原型与它的代码相关联。定义也是一种声明

浮点数l1,浮点数l2;这是一份声明。然后,编译器知道您可以传递两个浮点值,并从调用中得到一个浮点值作为返回

float rectfloat l1,float l2{return l1*l2;}是一个定义。因此,编译器知道调用函数时要执行什么指令

还有其他一些错误。scanf必须像以下那样使用:

scanf("%f",&radio);
%f是格式说明符,表示表示浮点数的字符串必须可从输入中读取,并且值必须存储在radio中,因此前缀&表示在的地址处

在开关的每一个外壳上使用断路器,如:


您可以省略break,但这可能不是您想要做的…

函数定义在哪里?可能重复:
switch(...) {
case ...:
    ...
    break;
case ...:
    ...
    break;
}