buenas noches disculpen tengo este codigo y me gustaria saber como puedo ubicar para hacer que em aparezca la elevacion de mis numeros ingresados por el usario en la matriz me aparezcan al cuadrado y luego al cubo, solo me falta lo de elevarlo al cubo y no se como hacerlo.
#include<stdio.h>
#include<conio.h>
main()
{
int numero,numero2,numero3,r2,r22,r23;
float r3,r32,r33;
printf("Ingrese un valor: ");scanf("%d",&numero);
printf("Ingrese un valor: ");scanf("%d",&numero2);
printf("Ingrese un valor: ");scanf("%d",&numero3);
printf("\n");
r2=numero*numero;
r22=numero2*numero2;
r23=numero3*numero3;
r3=pow(r2)(1/3);
r32=pow(r22)(1/3);
r33=pow(r23)(1/3);
printf("[%d][%d][%f]",numero,r2,r3);
printf("\n\n");
printf("[%d][%d][%f]",numero2,r22,r32);
printf("\n\n");
printf("[%d][%d][%f]",numero3,r23,r33);
getch();
return 0;
}
donde esta el "pow" es lo que necesito elevarlo al cubo para poder finalizar mi programa,si es posible hacerlo sin al biblioteca math.h y sin ningun sqrt o pow seria mucho mejor pero sino no importa
Eso no es una matriz :silbar:
Pow si no me equivoco pertenece a <cmath> y se usa
pow(base,exponente)
me da este error hermano
[Error] cmath: No such file or directory
y nunca termina de compilar el programa y se me pega la pc
Procura no hacer 2 mensajes seguidos, si quieres decir algo adicinal usa el boton modificar
Procura igual para el codigo publicar con etiquetas GeSHi
Es raro que se pegue porque no hay ciclos ni nada...
#include<math.h>
Esa es la librería (no temas de usar google en caso de duda)
Recuerda que el main debe ser tipo int siempre
int main(){
En tu código los (1/3) o hacen nada... quitalos... prueba y avisas
sigue igual hermano, no me deja compilar xq se queda compilando infinitamente, creo que es algo en el codigo que lo pone infinito.
El programa se trata de que ingreso 3 numeros en una columna y luego en la columna numero 2 deben aparecer los numeros ingresados en la columna 1 pero al cuadrado, y luego en la columna 3(que es la parte que me falta)necesito que muestre los numeros de la segunda columna pero elevados al cubo es decir 1/3 (1 entre 3 ). Pero llevo al rededor de 1semana haciendolo y no puedo hacer esa parte si me ayudaran se los agradezco muchisimo.
No xD
x3 es el cubo de x
x1/3 es la raiz cubica de x
Propiedades de exponentes
Igual esos 1/3 no hacen nada ahí, solo deben producir error...
Si lo que se queda pegado es el compilador es raro... no importa lo wue haya en tu código el compilador no debe pegarse... no estaras en modo debug o algo de eso? Que compulador usas? (Aunque por el conio.h debe ser dev c++)
jajaja, exacto necesito es la formula x1/3 pero en los numeros de la segunda columna y que se reflejen en la tercera columna, yo lo quite ese 1/3 y sigue asi es raro aun que estoy haciendo otros codigos y me andan perfecto, es solo con este que tengo ese problema, por cierto no estoy en modo debug y uso dev c++
Publica como tienes el código ahora
ok ya soluciones lo del compilador, ahora esto es el codigo que tengo
#include<stdio.h>
#include<conio.h>
#include<math.h>
int main()
{
int numero,numero2,numero3,r2,r22,r23;
float r3,r32,r33;
printf("Ingrese un valor: ");scanf("%d",&numero);
printf("Ingrese un valor: ");scanf("%d",&numero2);
printf("Ingrese un valor: ");scanf("%d",&numero3);
printf("\n");
r2=numero*numero;
r22=numero2*numero2;
r23=numero3*numero3;
r3=powr2;
//r32=pow(r22);
//r33=pow(r23);
printf("[%d][%d][%f]",numero,r2,r3);
printf("\n\n");
printf("[%d][%d][%f]",numero2,r22,r32);
printf("\n\n");
printf("[%d][%d][%f]",numero3,r23,r33);
getch();
return 0;
}
Revisa bien el codigo, usa pow como te indique y eso esta listo
No se hermano la verdad es que perdonarme pero ando demasiado bruto no se como hacerlo
Así a bote pronto, creo que estás pensando que "Pow" eleva al cubo.
Si, pero no... eleva a cualquier exponente.
El modo correcto de usarlo es (por ejemplo)
float base, exponente, resultado // tres valores. la base, o numero que quieres elevar al cubo, el exponente, en este caso 3 (al cubo) y obviamente el resultado.
base = 10.33 // (por ejemplo)
exponente = 3 // o cualquier otro numero
resultado = pow(base, exponente);
Obviamente puedes acortar mucho la cosa. No hace falta usar la variable exponente (ni que sea doble, lo he hecho por sencillez). Podrías tranquilamente usar:
resultado = pow(base, 3);
A ver si así consigues que funcione.
tengo mi programa asi
#include<stdio.h>
#include<conio.h>
#include<math.h>
main()
{
int numero,numero2,numero3,r2,r22,r23;
float base=10.33,exponente=3,resultado,resultado2,resultado3;
printf("Ingrese un valor: ");scanf("%d",&numero);
printf("Ingrese un valor: ");scanf("%d",&numero2);
printf("Ingrese un valor: ");scanf("%d",&numero3);
printf("\n");
r2=numero*numero;
r22=numero2*numero2;
r23=numero3*numero3;
resultado=(r2),pow(base,3);
resultado2=(r22),pow(base,3);
resultado3=(r23),pow(base,3);
printf("[%d][%d][%f]",numero,r2,resultado);
printf("\n\n");
printf("[%d][%d][%f]",numero2,r22,resultado2);
printf("\n\n");
printf("[%d][%d][%f]",numero3,r23,resultado3);
getch();
return 0;
}
y me da el siguiente error (15 26 C:\Users\Jesús\Desktop\nuevo.cpp [Error] 'pow' was not declared in this scope)
Se necesita declarar la función pow antes del main,
#include<stdio.h>
#include<conio.h>
#include<math.h>
void pow(int e, int b);
main()
{
int numero, numero2, numero3, r2, r22, r23;
float base = 10.33, exponente = 3, resultado, resultado2, resultado3;
printf("Ingrese un valor: "); scanf("%d",&numero);
printf("Ingrese un valor: "); scanf("%d",&numero2);
printf("Ingrese un valor: "); scanf("%d",&numero3);
printf("\n");
r2 = numero*numero;
r22 = numero2*numero2;
r23 = numero3*numero3;
resultado = (r2), pow(base, 3);
resultado2 = (r22), pow(base, 3);
resultado3 = (r23), pow(base, 3);
printf("[%d][%d][%f]", numero, r2, resultado);
printf("\n\n");
printf("[%d][%d][%f]", numero2, r22, resultado2);
printf("\n\n");
printf("[%d][%d][%f]", numero3, r23, resultado3);
getch();
return 0;
}
Cita de: Shell Root en 26 Noviembre 2014, 16:31 PM
Se necesita declarar la función pow antes del main
Y entonces para qué sirve
#include <math.h> ???
me suelta este error
http://prntscr.com/5acmop
Cita de: Jaua10 en 26 Noviembre 2014, 16:49 PM
me suelta este error
http://prntscr.com/5acmop
Lógico y normal. Te sale ese error porque no encuentra la implementación de una función con la firma void pow(int, int)
Además... se supone que "pow" debe devolver un valor... si no, ¿dónde se supone que va a almacenar el resultado? Los argumentos se los estás pasando por valor, no por punteros, por lo que no puede modificar esos valores.
Quita la declaración de ese pow. Si no te compila la aplicación es porque necesitarás añadir la librería math a tu proyecto de forma manual... quizás tengas que poner algo tal que "-lm" (sin comillas) en las directivas de compilación.
PD.: dado que la versión "pow" de math.h devuelve el resultado en forma de return, estaría bien que almacenases dicho valor en alguna variable, no se quizás algo tal que:
double resultado = pow( base, 3 );
sigue igual el codigo no me anda T_T
has probado lo que te he comentado de compilar con la opción -lm???
No sé que problemas tenéis para utilizar esta función... es tan simple como esto.
#include <stdio.h>
#include <math.h>
int main()
{
int resultado = pow(2,3); // dos elevado a tres
printf("%i\n",resultado);
return 0;
}
El problema es que hay compiladores que no enlazan automáticamente con la librería matemática y ese enlace hay que hacerlo manualmente...
El problema es que el programa no compila y mi codigo es el siguiente:
#include<stdio.h>
#include<conio.h>
#include<math.h>
void pow(int e, int b);
main()
{
int numero, numero2, numero3, r2, r22, r23;
float base = 10.33, exponente = 3,resultado,resultado2,resultado3;
printf("Ingrese un valor: "); scanf("%d",&numero);
printf("Ingrese un valor: "); scanf("%d",&numero2);
printf("Ingrese un valor: "); scanf("%d",&numero3);
printf("\n");
r2 = numero*numero;
r22 = numero2*numero2;
r23 = numero3*numero3;
resultado = (r2), pow(base, 3);
resultado2 = (r22), pow(base, 3);
resultado3 = (r23), pow(base, 3);
resultado = pow(1,3);
printf("[%d][%d][%f]", numero, r2, resultado);
printf("\n\n");
printf("[%d][%d][%f]", numero2, r22, resultado2);
printf("\n\n");
printf("[%d][%d][%f]", numero3, r23, resultado3);
getch();
return 0;
}
nose como hacer que los valores de la segunda columna se muestres en la tercera fila pero al cubo. que vendrian sienot resultado, resultado1 y resultado2
Manual:
Definicion de Potencia:
Tenemos 2 cosas importantes la base(b) y el exponente(n).
La base es el numero que se va a multipicar n veces por si mismo siendo n el exponente.
Ejemplo:
Base:2
Exponente:3
Potencia=Base*base*base (Base multiplicado n(con n exponente) veces por si mismo)
Entonces se puede hacer una funcion recursiva del estilo
funcion potencia(base , exponente)
si el exponente es 0
devuelvo 1(Por definicion matematica cualquier base elevado al numero 0 da 1)
sino
devuelvo (base * potencia(base,exponente-1))
----------------------------------------------------------------------
Esto ya esta hecho , y esta funcion esta en la libreria math, se llama pow.
Pow acepta 2 parametros , base y exponente.
Ejemplo:
2^3
entero=pow(2,3)
Solo tenes que añadir la libreria al principio del codigo y luego utilizar la funcion.
No tengo idea como funciona pow internamente pero casi seguro que es una funcion recursiva.Podrias desensamblar el codigo y ver como trabaja pow(si tienes conocimientos de ASM).
Saludos.
Cita de: Jaua10 en 26 Noviembre 2014, 21:31 PM
El problema es que el programa no compila y mi codigo es el siguiente:
#include<conio.h>
Que hace eso ahi? No hace falta ese include.
Eso corre perfectamente
#include<stdio.h>
#include<math.h>
main()
{
int numero, numero2, numero3, r2, r22, r23;
float base = 10.33, exponente = 3,resultado,resultado2,resultado3;
printf("Ingrese un valor: "); scanf("%d",&numero);
printf("Ingrese un valor: "); scanf("%d",&numero2);
printf("Ingrese un valor: "); scanf("%d",&numero3);
printf("\n");
r2 = numero*numero;
r22 = numero2*numero2;
r23 = numero3*numero3;
resultado = (r2), pow(base, 3);
resultado2 = (r22), pow(base, 3);
resultado3 = (r23), pow(base, 3);
resultado = pow(1,3);
printf("[%d][%d][%f]", numero, r2, resultado);
printf("\n\n");
printf("[%d][%d][%f]", numero2, r22, resultado2);
printf("\n\n");
printf("[%d][%d][%f]", numero3, r23, resultado3);
return 0;
}
Saludos.
Cita de: Jaua10 en 26 Noviembre 2014, 21:31 PM
El problema es que el programa no compila y mi codigo es el siguiente:
Te vuelvo a preguntar porque no me has respondido ¿Has probado a incluir -lm en las opciones de compilación?
Ahora para que declaras una variable exponente si no la usas , reservas espacio en memoria cuando ese espacio podria ser utilizado para otra cosa.Tambien existe algo que se llama arrays , fijate :
printf("Ingrese un valor: "); scanf("%d",&numero);
printf("Ingrese un valor: "); scanf("%d",&numero2);
printf("Ingrese un valor: "); scanf("%d",&numero3);
r2,r22,r23.
r2 = numero*numero;
r22 = numero2*numero2;
r23 = numero3*numero3;
Tambien acostumbrate a utilizar %s .Busca format string vulnerability.
Mi codigo actualmente tiene la libreria math.h solo que en la imagen no salio pero aqui esta la cosa:
#include<math.h>
#include<stdio.h>
#include<conio.h>
void pow(int e, int b);
main()
{
int numero, numero2, numero3, r2, r22, r23;
float base = 10.33, exponente = 3,resultado,resultado2,resultado3;
printf("Ingrese un valor: "); scanf("%d",&numero);
printf("Ingrese un valor: "); scanf("%d",&numero2);
printf("Ingrese un valor: "); scanf("%d",&numero3);
printf("\n");
r2 = numero*numero;
r22 = numero2*numero2;
r23 = numero3*numero3;
resultado = (r2),pow(2, 3);
resultado2 = (r22), pow(2, 3);
resultado3 = (r23), pow(2, 3);
resultado = pow(2,3);
printf("[%d][%d][%f]", numero, r2, resultado);
printf("\n\n");
printf("[%d][%d][%f]", numero2, r22, resultado2);
printf("\n\n");
printf("[%d][%d][%f]", numero3, r23, resultado3);
getch();
return 0;
}
Ya he intentado todo lo que me han dicho y sigue igual y con lo que llevo actualmente es con lo que tengo menos errores, solo tengo 1 y o logro conseguir solo quiero que en mis variables r2,r22yr23 se eleven al cubo y se muestren en mis variables resultado, resultado1 y resultado2 pero ya he intentado todo.
Elevar al cubo se hace con:
resultado = pow(r2, 3);
no con
resultado = (r2),pow(2, 3);
#include<math.h>
#include<stdio.h>
#include<conio.h>
void pow(int e, int b);
main()
{
int numero, numero2, numero3, r2, r22, r23;
float base = 10.33, exponente = 3,resultado,resultado2,resultado3;
printf("Ingrese un valor: "); scanf("%d",&numero);
printf("Ingrese un valor: "); scanf("%d",&numero2);
printf("Ingrese un valor: "); scanf("%d",&numero3);
printf("\n");
r2 = numero*numero;
r22 = numero2*numero2;
r23 = numero3*numero3;
resultado = pow(r2, 3);
resultado2 = pow(r22, 3);
resultado3 = pow(r23, 3);
resultado = pow(2,3);
printf("[%d][%d][%f]", numero, r2, resultado);
printf("\n\n");
printf("[%d][%d][%f]", numero2, r22, resultado2);
printf("\n\n");
printf("[%d][%d][%f]", numero3, r23, resultado3);
getch();
return 0;
}
Tal como dices @eferion y aun asi me da error
Si te sigue dando el mismo error es un problema de enlazado, ya te dieron la forma de resolverlo: pasandole -lm como parametro. Si seguis teniendo problemas consulta la ayuda del entorno que estas usando o consegui otro (hay mejores y gratuitos).
Y saca esto por favor, ya te lo dijeron, para algo estas incluyendo math.h:
void pow(int e, int b);
Leete este hilo y aplicalo, tambien te dijeron que sacaras conio.h: https://foro.elhacker.net/programacion_cc/lo_que_no_hay_que_hacer_en_cc_nivel_basico-t277729.0.html
Lee las respuestas que te dan en el foro de paso.