|
41
|
Programación / Programación C/C++ / Re: Calcular potencia con recursividad
|
en: 8 Junio 2015, 23:05 pm
|
Gracias a todos por vuestra respuestas! He conseguido terminarlo pero creo que no como me pide el ejercicio. #include<stdio.h> #include<conio.h> /* Declaración de funciones */ int potencia(int, int); int main(void){ int base, exponente; printf("\nLa pontencia del numero %i con exponente %i es %i", base , exponente , potencia (base , exponente )); return 0; } int potencia(int base, int exponente){ if (exponente == 0) return 1; else{ return base * potencia(base, exponente -1); // llamada recursiva } }
|
|
|
42
|
Programación / Programación C/C++ / Re: Calcular potencia con recursividad
|
en: 8 Junio 2015, 21:47 pm
|
Gracias Stakewinner, lo voy entendiendo solo que al ver esa formula se me esta complicando. Entonces ahora me quedaría así: #include<stdio.h> #include<conio.h> /* Declaración de funciones */ int potencia (int); int main(void){ int n; printf("Esribe un numero para calcular su potencia: "); printf("\nLa pontencia del numero %i es %i", n , potencia (n )); return 0; } int potencia(n){ if (n == 0) return 1; if (n == 1) return 0; if (n % 2 == 0){ (potencia^(n/2))^2 } else{ potencia*(potencia^((n-1)/2))^2 } }
|
|
|
43
|
Programación / Programación C/C++ / Calcular potencia con recursividad
|
en: 8 Junio 2015, 21:00 pm
|
Hola compañeros, estoy un poco confuso en como puedo realizar el siguiente ejercicio. Tengo la siguiente función y tengo que calcular la potencia de forma recursiva: función(x,n): 1 si n = 0 x si n = 1 (x^(n/2))^2 si n es par, n>1 x*(x^((n-1)/2))^2 si n es impar, n>2 Y bueno dejaré mi pobre código esperando un poco de ayuda #include<stdio.h> #include<conio.h> /* Declaración de funciones */ int potencia (int); int main(void){ int n; printf("Esribe un numero para calcular su potencia: "); printf("\nLa pontencia del numero %i es %i", n , potencia (n )); return 0; } int potencia(n){ if (n == 0) return 0; if (n == 1) return 1; if (n % 2 == 0){ (x^(n/2))^2 } else{ x*(x^((n-1)/2))^2 } }
|
|
|
44
|
Programación / Programación C/C++ / Re: Numero menor recursivo
|
en: 15 Abril 2015, 00:15 am
|
Hola compañeros, ya tengo mejorado el código. Lo que pretendia hacer con la variable "medida" era saber los elementos que habrán en el vector. Ahora lo verán más claro: #include<stdio.h> #include<conio.h> /* Programa recursivo que muestra el numero menor de un vector */ int valorMenor(int* vector, int num_elementos, int menor_encontrado); int main(){ int i, valor; int vector[100]; int num_elementos; int menor_encontrado; printf("Cuantos numeros quieres introducir? "); // Creo que esto no se tiene que poner, hay que rellenar el vector sin pedir el tamaño pero estoy dudando scanf("%i", &num_elementos ); for(i=0; i<num_elementos; i++){ // Rellenamos el vector vector[i] = valor; } printf("El valor mas pequeno es: %i", valorMenor (vector , num_elementos , menor_encontrado )); return 0; } int valorMenor(int* vector, int num_elementos, int menor_encontrado){ // Caso base if (num_elementos == 0) return menor_encontrado; else return valorMenor(vector, num_elementos -1, min(menor_encontrado, vector[num_elementos -1])); } // Fin función
Gracias por la ayuda!
|
|
|
45
|
Programación / Programación C/C++ / Numero menor recursivo
|
en: 13 Abril 2015, 21:11 pm
|
Hola compañeros, estoy haciendo un programa recursivo en C que mostrará el número menor de un vector. De momento esto es lo que he planteado: #include<stdio.h> #include<conio.h> /* Programa recursivo que muestra el numero menor de un vector */ int valorMenor(int vector[100], int medida); int main(){ int medida, i, valor; int vector[100]; printf("Cuantos numeros quieres introducir? "); // Creo que esto no se tiene que poner, hay que rellenar el vector sin pedir el tamaño pero estoy dudando for(i=0; i<medida; i++){ // Rellenamos el vector vector[i] = valor; } printf("El valor mas pequeno es: %i", valorMenor (vector , medida )); return 0; } int valorMenor(int vector[100], int medida){ int menor=0; // Caso base if (medida==0){ if (menor > vector[100]){ return vector[100]; } else{ return menor; } } else{ if (menor > vector[100]){ return valorMenor (vector[100], medida-1, menor); } else{ return valorMenor (vector, medida-1, menor); } } } // Fin función
Un saludo
|
|
|
46
|
Programación / Programación C/C++ / Re: 1ra palabra de un String
|
en: 21 Febrero 2015, 09:18 am
|
Gracias por la ayuda, era solamente eso!! Tengo otra función parecida, la de mostrar la palabra más larga del String introducido y no me funciona: /* Función para mostrar la palabra más larga de una frase */ char* palabraLarga(char frase[20]){ char *elemento = strtok ( frase , " " ); while ( elemento != NULL ) { } return frase; }
case 3: printf("La palabra más larga del String es ' %s '", palabraLarga (frase )); break;
|
|
|
47
|
Programación / Programación C/C++ / 1ra palabra de un String
|
en: 19 Febrero 2015, 23:29 pm
|
Hola, que tal? Les vengo a preguntar sobre una función que me muestra la 1r palabra de un string, tengo esta función hecha, compila bien pero no muestra nada. char* extraerPalabra(char frase[20]) { char *elemento = strtok(frase , " "); while (elemento != NULL) { if (!strcmp(frase , elemento )) // Comparamos las dos cadenas } return frase; }
case 2: printf("String mostrando la 1r palabra: ' %s '", extraerPalabra (frase )); break;
|
|
|
49
|
Programación / Programación C/C++ / Re: Pasar string por referencia o no
|
en: 17 Febrero 2015, 18:42 pm
|
Buenas, Ya he podido solventar el problema de leer un String, ahora tengo problemas al pasar por referencia, dejo el código: #include <stdio.h> #include <stdlib.h> #include <string.h> int frecuencia(char *, char letra); int main(){ int opcion=1; char frase[20], letra; while(opcion!=5){ printf("1. Introducir frase\n"); printf("2. Frecuencia caracter\n"); printf("3. Quitar primera palabra\n"); printf("4. Sin espacios en blanco\n"); printf("\n\nEscoge una opcion: "); switch (opcion){ case 1: printf("Introduce una frase "); gets(frase ); // Guardamos el String printf("\n\nLa frase introducida es:\n\n\n"); break; case 2: printf("\n\nQue letra quieres buscar en la cadena? "); scanf("%c", &letra ); // guardamos la letra que queremos buscar en la cadena printf("La letra %c aparece %i veces repetidas", letra , frecuencia (frase ,letra )); break; case 3: //printf("\nLa frase sin la primera palabra: %s\n", quitarPrimera(frase)); break; case 4: //printf("\nLa frase sin espacio es: %s\n", sinEspacios(frase)); break; case 5: return 0; break; default: printf("\nOpcion incorrecta! Intenta de nuevo"); } } return 0; }// fin main // Función para comprobar cuantas veces se repite una letra int frecuencia(char *frase[20], char letra){ int i, cont=0; // la variable contador será la encargada de sumar cuando se encuentre la letra for (i=0; frase[i] != '\0'; i++){ // recorremos con un for hasta encontrar el espacio en blanco if (frase[i] == letra){ // si el punto de la cadena es = a la letra que queremos encontrar cont++; // sumara el contador } } return cont; // retornaremos las veces que se ha encontrado el caracter que hemos buscado en el for }
Al leer un String y pasarlo por referencia se pone " & " delante de la variable pero me da error. Gracias
|
|
|
50
|
Programación / Programación C/C++ / Re: Pasar string por referencia o no
|
en: 16 Febrero 2015, 19:54 pm
|
Buenas compañeros, Sigo teniendo problemas a la hora de leer Strings, si leo caracteres no tengo problema pero como quiera escribir un Strings con una frase con espacios me da el siguiente error: No me permite escribir nada en el Stringprintf("Introduce el String: "); printf("\nLa frase sin la primera palabra: %s\n", quitarPrimera (frase ));
char* quitarPrimera(char frase[20]); int main(){ char frase[20];
Creo que será que tengo que recoger de otra forma la cadena porque con un SCANF puedo pero no me permite coger frases con espacios y no es el objetivo que estoy buscando. Gracias!!!
|
|
|
|
|
|
|