为什么此 TAD 返回 0.0000 而不是所涉及的函数的结果
Why this TAD is returning 0.0000 instead of the result of the functions involved?
我编写了这个小程序,以便通过考试。它涉及一种名为 C+- 的语言中的抽象类型数据,它是 C++ 的有限版本。它在我的大学里使用,是为了提供一种有助于学习和纠正的小语言,没有C++那么多的可能性。
#include <stdio.h>
//Definimos una estructura, casi una clase, que contiene lo siguiente
typedef struct Calculadora
{
//procesos
float Sumar(float a, float b);
float Restar(float a, float b);
//variables
private:
float a;
float b;
float resultado;
};
// Fin de declaración de la estructura
// Declaración de los tipos de datos de la estructura
float Calculadora::Sumar(float a, float b) // Así declaramos las funciones de una estructura
{
resultado = a + b;
return (resultado);
}
float Calculadora::Restar(float a, float b) // Así declaramos las funciones de una estructura
{
resultado = a - b;
return (resultado);
}
// FIN DE LA DECLARACION DE TIPOS DE DATOS Y FUNCIONES DE LA ESTRUCTURA
int main()
{
float resultado,a,b;
printf("Introduce aquí los valores de la primera variable");
scanf("%f",&a);
printf("Introduce aquí los valores de la segunda variable");
scanf("%f",&b);
Calculadora cal;
cal.Sumar(a,b);
printf("El resultado es %f", resultado);
}
但是,结果始终是 0.00000 这不是程序的目标。知道这段代码可能有什么问题吗?
您正在打印出在函数main()
中未初始化的局部变量resultado
您可能想要做的是使用成员函数打印出Calculadora
的成员变量。
cal.Sumar(a,b);
的结果将被丢弃,在这种情况下,如果要存储结果,则必须将结果分配给 main 函数中的局部变量。
当然,解决方案是显而易见的(只有当有人指出代码中存在的愚蠢错误时)。
结果 = 计算。苏玛(a,b);
谢谢!
float Calculadora::Sumar(float a, float b) { ...
指示该函数返回一个值,但您可以使用以下命令调用它:
cal.Sumar(a,b);
有效地(假设你的C+-
语言像C)扔掉结果。
您应该存储结果以将其打印出来:
resultado = cal.Sumar(a,b);
相关文章:
- 如何从递归函数中完全返回,该函数给出了每个函数结果的累积相加?
- 分段错误分配函数结果
- 使用函数结果作为参数的 C++
- 从可调用可变参数元组中的函数结果创建元组
- 将多个向量(函数结果)组合到一个使用模板中
- 是否可以使用自动占位符来推断非类型模板参数中的函数结果
- 大小由虚函数结果决定的数组
- C/C++编译器是否会通过重用最近计算的函数结果来优化代码?
- 从函数结果中分配 std::shared_ptr 的一行是什么?
- 将函数结果分配给变量的问题
- std::具有自定义比较函数结果的排序函数错误:必须调用对非静态成员函数的引用
- C++SFINAE运算符/函数结果类型检查
- 将函数结果作为"output parameter"返回是什么意思?
- 这将是在将函数分配给变量或一次又一次地调用函数之间使用函数结果的最佳方式
- C++中的绑定函数结果
- 有没有比生成/累积更快的方法来计算函数结果的平均值
- 为什么当递归函数结果相乘时,g++ 仍然优化尾递归
- C++成员函数结果缓存实现
- 用于输出列中对数函数结果的合适循环(c++)
- 将记录作为函数结果从Delphi DLL传递到c++