|
Mostrar Temas
|
Páginas: [1]
|
1
|
Programación / Programación C/C++ / Convertir decimal a diferentes bases
|
en: 6 Marzo 2015, 05:27 am
|
Hola, tengo que hacer un programa que convierta un numero decimal dado a una base dada. Tengo hecho un código que considero está bien, pero no entiendo por qué no me da ningún resultado, y me urge que funcione, les agradecería si alguien me ayuda #include <stdio.h> #include <conio.h> #include <stdlib.h>
char* conversion(int num, int base) { char* resultado = new char[20]; int i = 0; //contador de posicion. int n[20]; while(num > 0) { n[i] = num % base; num = num / base; i++; } int j = 0; //contador para resultado. while(i >=0) { if(n[i] >= 0 && n[i] <= 9) { resultado[j] = char(n[i]); } else { switch(n[i]) { case 10: resultado[j] = 'A'; break; case 11: resultado[j] = 'B'; break; case 12: resultado[j] = 'C'; break; case 13: resultado[j] = 'D'; break; case 14: resultado[j] = 'E'; break; case 15: resultado[j] = 'F'; break; } } i--; j++; } return resultado; }
int main() { int num, base; int continuar = 0; while (continuar == 0) { printf("Aqui puedes convertir un numero decimal a cualquier base entre 2 y 16.\n\nIngresa el numero a convertir: "); scanf("%d", &num); printf("\nA que base quieres convertirlo? "); scanf("%d", &base); printf("El numero %d en base %d es: ", num, base); conversion(num, base); printf("\n\nQuieres convertir otro numero? Si=0/No=1 "); scanf("%d", &continuar); system("cls"); } printf("Presiona enter para salir..."); getch(); }
|
|
|
2
|
Programación / Programación C/C++ / Buscar una cadena en un archivo.
|
en: 23 Diciembre 2014, 04:46 am
|
Hola. Debo hacer un programa que busque una cadena dada en un archivo existente, el problema es que al parecer hay algo mal en la comparación y no se que es que me dice que la cadena no existe, espero me puedan ayudar. El código para crear el archivo es este: #include <stdio.h> #include <conio.h> #include <string.h>
int main() { FILE *archivin; char cadenita1[]= "Prueba de creacion de archivo\n"; char cadenita2[]= "Ya casi estamos de vacaciones\n"; char cadenita3[]= "Pero vamos a reprobar psicologia\n"; char cadenita4[]= "Vamos a regresar en enero\n";
archivin = fopen("C:\\Users\\Axel\\Documents\\Archivo info.txt", "wt"); fputs(cadenita1, archivin); fputs(cadenita2, archivin); fputs(cadenita3, archivin); fputs(cadenita4, archivin); fclose(archivin); printf("El archivo ha sido creado y/o modificado."); getch(); } EL código para comparar y buscar es este: #include <stdio.h> #include <conio.h> #include <string.h> #include <locale.h>
int main() { setlocale(LC_ALL, "spanish"); FILE *archivo; char buscar[100]; char cadena1[100]; char cadena2[100]; char cadena3[100]; char cadena4[100]; archivo = fopen("C:\\Users\\Axel\\Documents\\Archivo info.txt", "r"); fgets(cadena1, 100, archivo); fgets(cadena2, 100, archivo); fgets(cadena3, 100, archivo); fgets(cadena4, 100, archivo); printf("¿Qué cadena quieres buscar? "); gets(buscar); if (strcmpi(cadena1, buscar) == 0) { printf("\n\nLa cadena que buscas está en el archivo, y se encuentra en la primera línea."); } else if (strcmpi(cadena2, buscar) == 0) { printf("\n\nLa cadena que buscas está en el archivo, y se encuentra en la segunda línea."); } else if (strcmpi(cadena3, buscar) == 0) { printf("\n\nLa cadena que buscas está en el archivo, y se encuentra en la tercera línea."); } else if (strcmpi(cadena4, buscar) == 0) { printf("\n\nLa cadena que buscas está en el archivo, y se encuentra en la cuarta línea."); } else { printf("\n\nLa cadena que buscas no se encuentra en el archivo."); } fclose(archivo); getch(); } Como dije, el problema es que siempre me dice que la cadena no se encuentra en el archivo. Haciendo pruebas, comparé buscar con buscar y si funcionó, entonces no se que error haya al comparar con la cadena.
|
|
|
3
|
Programación / Programación C/C++ / Identificar frases palíndromas
|
en: 15 Noviembre 2014, 06:10 am
|
Hola a todos, tengo que hacer un programa que identifique las frases palíndromas. Tengo este código, pero falla en el if al comprobar la cadena con la cadena invertida: #include <stdio.h> #include <conio.h> #include <string.h>
int main() { char frase1[100]; char frase2[100]; printf("Aqui puedes identificar frases palindromas\n\nEscribe tu frase: "); gets(frase1); int letra1 = 0; int letra2 = 0; for (letra1 = 0; letra1 <= strlen(frase1) ; letra1++) { if (frase1[letra1] != ' ') { frase2[letra2++] = frase1[letra1]; } } strlwr(frase2); printf("%s", frase2); if (frase2 == strrev(frase2)) { printf("\nTu frase es palindroma!"); } else { printf("\nTu frase no es palindroma!"); } }
|
|
|
4
|
Programación / Programación C/C++ / Cambio en billetes y monedas en C++
|
en: 1 Octubre 2014, 23:07 pm
|
Hola, espero puedan ayudarme, tengo que devolver el cambio en billetes de 200, 100, 50, 20 y monedas de 10, 5, 2, 1 es basándome en este código (la parte importante es la subrayada), funciona bien con los billetes, pero en las monedas me da de más o de menos: int main() { int continuar, chimichanga; continuar = 0; while (continuar == 0) { printf("\nMenu: \n 1.-Paque-te pongas feliz. \n 2.-Paque-te llenes. \n 3.-Paque-te enojes"); printf("\nSelecciona tu paquete: "); scanf("%d",&chimichanga); int precio; int billetesA, sobra, billetesB, sobraB, billetesC, sobraC, billetesD, sobraD, monedaA, monedaB, sobraE, monedaC, sobraF, monedaD, sobraG; switch(chimichanga) { case 1: precio=100; printf("Elegiste el paquete %d, su precio es de %d este incluye: ",chimichanga, precio); printf("\n Chocolate caliente. \n 3 churros. \n 5 tacos."); break; case 2: precio=80; printf("Elegiste el paquete %d, su precio es de %d este incluye: ",chimichanga, precio); printf("\n Cafe \n Concha \n Torta"); break; case 3: precio=40; printf("Elegiste el paquete %d, su precio es de %d este incluye: ",chimichanga, precio); printf("\n Agua. \n Bolillo. \n Chayote."); break; default: printf("Escoge un paquete valido."); }; int pago, cambio; printf("\n indica con cuanto vas a pagar: "); scanf("%d", &pago); [u] if (pago>=precio) { cambio=pago-precio; printf("\n su cambio es de: %d", cambio); billetesA=cambio/200; printf("\n %d billetes de 200", billetesA); sobra=cambio%200; billetesB=sobra/100; printf("\n %d billetes de 100", billetesB); sobraB=cambio%100; billetesC=sobraB/50; printf("\n %d billetes de 50", billetesC); sobraC=cambio%50; billetesD=sobraC/20; printf("\n %d billetes de 20", billetesD); sobraD=cambio%20; monedaA=sobraD/10; printf("\n %d monedas de 10", monedaA); sobraE=cambio%10; monedaB=sobraE/5; printf("\n %d monedas de 5", monedaB); sobraF=cambio%5; monedaC=sobraF/2; printf("\n %d monedas de 2", monedaC); sobraG=cambio%1; monedaD=sobraG/1; printf("\n %d monedad de 1", monedaD); [/u] } else { printf("\n pague lo que se indica."); }; printf("\nQuieres escoger algun otro paquete? Presiona 0 si tu respuesta es si y 1 si es no: "); scanf("%d", &continuar); system("cls"); }; getch(); }
|
|
|
|
|
|
|