为了通过考试,我编写了这个小程序。它涉及一种名为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这不是该计划的目标。对这段代码有什么不妥的想法?
答案 0 :(得分:2)
您正打印出函数resultado
中未初始化的本地变量main()
您可能想要做的是使用成员函数打印Calculadora
中的成员变量。
cal.Sumar(a,b);
的结果被丢弃,在这种情况下,如果要存储结果,必须将结果分配给main函数中的局部变量。
答案 1 :(得分:0)
float Calculadora::Sumar(float a, float b) { ...
表示该函数返回一个值,但您用:
调用它cal.Sumar(a,b);
有效(假设你的C+-
语言就像C)丢弃结果。
你应该存储结果将其打印出来:
resultado = cal.Sumar(a,b);
答案 2 :(得分:0)
当然,解决方案很明显(只有当有人指出代码中存在愚蠢的错误时)。
resultado = calc.Sumar(a,b);
谢谢!