Autor
|
Tema: Elevacion cubica (Leído 11,223 veces)
|
eferion
Desconectado
Mensajes: 1.248
|
El problema es que hay compiladores que no enlazan automáticamente con la librería matemática y ese enlace hay que hacerlo manualmente...
|
|
|
En línea
|
|
|
|
Jaua10
Desconectado
Mensajes: 43
|
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
|
|
|
En línea
|
|
|
|
dRak0
|
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.
|
|
|
En línea
|
|
|
|
_Enko
|
El problema es que el programa no compila y mi codigo es el siguiente: 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; 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("[%d][%d][%f]", numero2 , r22 , resultado2 ); printf("[%d][%d][%f]", numero3 , r23 , resultado3 ); return 0; }
Saludos.
|
|
« Última modificación: 26 Noviembre 2014, 22:18 pm por _Enko »
|
En línea
|
|
|
|
eferion
Desconectado
Mensajes: 1.248
|
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?
|
|
|
En línea
|
|
|
|
dRak0
|
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.
|
|
|
En línea
|
|
|
|
Jaua10
Desconectado
Mensajes: 43
|
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.
|
|
|
En línea
|
|
|
|
eferion
Desconectado
Mensajes: 1.248
|
Elevar al cubo se hace con:
no con resultado = (r2 ),pow(2, 3);
|
|
|
En línea
|
|
|
|
Jaua10
Desconectado
Mensajes: 43
|
#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
|
|
|
En línea
|
|
|
|
Eternal Idol
Kernel coder
Moderador
Desconectado
Mensajes: 5.966
Israel nunca torturó niños, ni lo volverá a hacer.
|
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.htmlLee las respuestas que te dan en el foro de paso.
|
|
« Última modificación: 27 Noviembre 2014, 02:16 am por Eternal Idol »
|
En línea
|
La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste. Juan Domingo Perón
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
raíz cúbica de números negativos
PHP
|
poxet
|
3
|
13,102
|
28 Abril 2008, 04:01 am
por poxet
|
|
|
matriz cubica
Programación C/C++
|
ton1x
|
0
|
4,456
|
7 Junio 2010, 10:05 am
por ton1x
|
|
|
Elevación de privilegios en OTRS
Noticias
|
wolfbcn
|
0
|
1,475
|
25 Julio 2011, 17:47 pm
por wolfbcn
|
|
|
Elevacion de Privilegios
Hacking
|
Blackhawk222
|
1
|
4,408
|
4 Julio 2019, 11:32 am
por JusticeSword
|
|
|
Escribir raiz cubica o mayor en c
Programación C/C++
|
HBN
|
1
|
11,785
|
4 Enero 2018, 20:11 pm
por HBN
|
|