online compiler and debugger for c/c++

code. compile. run. debug. share.
Source Code   
Language
/****************************************************************************** Online C++ Compiler. Code, Compile, Run and Debug C++ program online. Write your code in this editor and press "Run" button to compile and execute it. *******************************************************************************/ #include <iostream> using namespace std; typedef struct { int largo; int ancho; } rectangulo; void ingresa_datos_rectangulo (rectangulo * un_rectangulo, int lado1, int lado2); void imprime_rectangulo (rectangulo otro); void duplica_largo_por_copia (rectangulo algun_rectangulo); void duplica_largo_por_referencia (rectangulo * algun_rectangulo); bool son_iguales (rectangulo a, rectangulo b); int area_rectangulo (rectangulo un_rectangulo); int main () { cout << "Ejemplo de Rectangulos (typedef)" << endl; int a, b; rectangulo verde; rectangulo azul; cout << "AZUL:" << endl; cout << "ingrese lado largo "; cin >> a; cout << "ingrese otro lado (ancho) "; cin >> b; azul.largo = a; // -> azul.ancho = b; imprime_rectangulo (azul); cout << "VERDE:" << endl; cout << "ingrese lado "; cin >> a; cout << "ingrese otro lado "; cin >> b; ingresa_datos_rectangulo (&verde, a, b); imprime_rectangulo (verde); // if (azul==verde) // <== eso no funciona porque == no reconoce typedefs if (son_iguales (azul, verde)) { cout << "son iguales" << endl; } else { cout << "son distintos" << endl; } duplica_largo_por_copia (verde); imprime_rectangulo (verde); duplica_largo_por_referencia (&verde); imprime_rectangulo (verde); // cout << "la direccion de memoria de verde es " << &verde << endl; // cout << "la direccion de memoria de verde.largo es " << &verde.largo << endl; // cout << "la direccion de memoria de verde.ancho es " << &verde.ancho << endl; return 0; } // con * es paso por referencia o direccion de memoria void ingresa_datos_rectangulo (rectangulo * un_rectangulo, int lado1, int lado2) { // cout << "la direccion de memoria de un_rectangulo es " << un_rectangulo << endl; if (lado1 > lado2) { un_rectangulo->largo = lado1; un_rectangulo->ancho = lado2; } else { un_rectangulo->largo = lado2; un_rectangulo->ancho = lado1; } } void duplica_largo_por_copia (rectangulo algun_rectangulo) { algun_rectangulo.largo = (algun_rectangulo.largo * 2); } void duplica_largo_por_referencia (rectangulo * algun_rectangulo) { algun_rectangulo->largo = (algun_rectangulo->largo * 2); } // sin * es paso por valor o copia void imprime_rectangulo (rectangulo otro) { // cout << "la direccion de memoria de otro es " << &otro << endl; cout << "largo " << otro.largo; cout << ",ancho " << otro.ancho; cout << "\n"; } bool son_iguales (rectangulo a, rectangulo b) { if ((a.largo == b.largo) && (a.ancho == b.ancho)) { return true; } else { return false; } } // por valor /* int area_rectangulo(rectangulo * un_rectangulo) { return un_rectangulo->ancho*un_rectangulo->largo; } */ // por copia int area_rectangulo (rectangulo un_rectangulo) { return un_rectangulo.ancho * un_rectangulo.largo; }

Compiling Program...

Command line arguments:
Standard Input: Interactive Console Text
×

                

                

Program is not being debugged. Click "Debug" button to start program in debug mode.

#FunctionFile:Line
VariableValue
RegisterValue
ExpressionValue