-1

Buenas estoy empezando en esto de la programacion y he realizado muy pocos programas en geany, aca estoy con una duda sobre mi siguiente codigo el cual necesito que entre un parametro (dos numeros) se multipliquen por 2 y por 3 y me muestre sus resultados (con funciones) pero al ejecutar me pide los digitos aunque me hace ingresar 3 y no solo eso sino que no aplica las operaciones si alguien me puede ayudar seria de mucha ayuda

#include <iostream>
#include <stdio.h>
#include <conio.h> 

using namespace std;

void multiP(int num1,int num2);


int main(){
   int num1, num2;

    cout<<"digite dos numeros"<<endl;
    cin>>num1>>num2;

    getchar();
    getchar();
    return 0;

}

void multiP (int num1, int num2){
       int a,b,c,d;
       a=num1*2;
       b=num1*3;
       c=num2*2;
       d=num2*3;
      cout<<"el valor de la primera multiplicacion es:"<<a<<endl;
      cout<<"el valor de la segunda multiplicacion es:"<<b<<endl;
      cout<<"el valor de la tercera multiplicacion es:"<<c<<endl;
      cout<<"el valor de la cuarta multiplicacion es:"<<d<<endl;
}
PaperBirdMaster
  • 44,474
  • 6
  • 44
  • 82

2 Answers2

1

A tu código solo le hace falta llamar a la función, si está declarada y las operaciones que se encuentran dentro también son correctas, pero no la mandas a llamar y mientras a una función no la llames esta no se va a ejecutar...

Te dejo el código de como quedaria...

#include <iostream>
#include <stdio.h>
#include <conio.h> 

using namespace std;

void multiP(int num1,int num2);


int main(){
   int num1, num2;

    cout<<"Digite dos numeros"<<endl;
    cout<<"Digita el primer numero: ";
    cin>>num1;
    cout<<"Digita el segundo numero: ";
    cin>>num2;
    multiP(num1,num2);

    return 0;

}

void multiP (int num1, int num2){
       int a,b,c,d;
       a=num1*2;
       b=num1*3;
       c=num2*2;
       d=num2*3;
      cout<<"el valor de la primera multiplicacion es:"<<a<<endl;
      cout<<"el valor de la segunda multiplicacion es:"<<b<<endl;
      cout<<"el valor de la tercera multiplicacion es:"<<c<<endl;
      cout<<"el valor de la cuarta multiplicacion es:"<<d<<endl;
}
Alejandro Caro
  • 791
  • 11
  • 32
Frank Miller
  • 195
  • 1
  • 9
1

¿Por qué mi programa no realiza la operación que le pido?

Porque no se la pides:

int main(){
   int num1, num2;

    cout<<"digite dos numeros"<<endl;
    cin>>num1>>num2;

    getchar();
    getchar();

    multiP(num1, num2); // <---- Falta la llamada a multiP

    return 0;
}

Además del despiste mencionado, tu código tiene una serie de problemas que deben ser mencionados.

  • La cabecera <stdio.h> es de no de . Las cabeceras de C disponen de una versión adaptada a C++ que tiene el prefijo c y carece de extensión. Si realmente necesitas usar las cabeceras de C (que muy rara vez será el caso y ciertamente no es el tuyo) debes usar los equivalentes de C++ <cstdio> . Lee este hilo para saber por qué.
  • <conio.h> no forma parte de las librerías estándar de C. Es una utilidad proveída por el compilador de la plataforma, declara varias funciones para permitir al usuario interactuar con la consola y las funciones proveídas varían entre compiladores y plataformas, en definitiva no sigue ni el ANSI C ni el POSIX. No se recomienda su uso, pues hace que el código no sea portable.
  • No se aconseja el uso de using namespace std; salvo que sea estrictamente necesario (no suele serlo), en caso de usarlo se aconseja que sea en el ámbito más pequeño posible. Consulta este hilo para saber por qué.
  • No suele ser necesario usar std::endl, es más eficiente usar un salto de línea explícito \n, consulta este hilo para saber por qué.
  • Los nombres de tus variables o tipos no son autoexplicativos; los nombres deberían permitir saber de un vistazo su cometido, haciendo que el código sea menos propenso a errores y haciendo que sea más fácil de leer y entender, cosa que cualquier persona que trabaje contigo (incluso tu yo futuro) agradecerá mucho.
PaperBirdMaster
  • 44,474
  • 6
  • 44
  • 82
  • Muchisimas gracias por la ayuda y por los hilos de informacion todo esto me sera muy util para futuro en todo esto de la programacion <3 y habia visto clase con un profesor que me menciono que siempre se usa using namespace std; casi siempre, igual investigare mas sobre eso – Angysita Jul 08 '19 at 09:27
  • `using namespace std;` es un arma de doble filo, es cómodo y puede ser mal usado. Evita usarlo en archivos de cabecera y fomenta usarlo en ámbitos pequeños (por ejemplo, dentro de funciones). Consulta [este hilo](https://es.stackoverflow.com/questions/460/por-qu%C3%A9-el-usar-using-namespace-std-se-considera-mala-pr%C3%A1ctica) para más detalles. – PaperBirdMaster Jul 08 '19 at 09:29