|
1231
|
Programación / Programación C/C++ / Re: ayuda en C
|
en: 21 Octubre 2012, 14:01 pm
|
Al ejecutarlo, introduzco la opcion 1 y me calcula la longitud del circulo, pero al introducir la opción 2 o 3 no aparece nada mas. A mí me funciono sin problemas las tres opciones. No obstante, tienes que cambiar algunas variables de int a float y algo los "mensajes" de "Introducir": #include <stdio.h> #include <stdlib.h> #define PI 3.141592 int main() { int opcion; float r,longitud,superficie,volumen; printf("1.Longitud del ciculo \n"); printf("2.Superficie del circulo \n"); printf("3.Volumen esfera \n"); do { printf("Introduce una opcion \n"); scanf("%d",&opcion); }while(opcion<1||opcion>3); if(opcion==1) { printf("Introduce el radio del circulo \n"); scanf("%g",&r); longitud=2*PI*r; printf("Longitud= %g",longitud); } else if(opcion==2) { printf("Introduce el radio del circulo \n"); scanf("%g",&r); superficie=PI*r*r; printf("Superficie = %g",superficie); } else { printf("\n Introduce el radio de la esfera \n"); scanf("%g",&r); volumen=4/3*PI*r*r*r; printf("Volumen = %g",volumen); } return 0; }
|
|
|
1232
|
Programación / Programación C/C++ / Re: ¿Cómo determinar que sólo acepte 8 dígitos?
|
en: 21 Octubre 2012, 13:42 pm
|
Tengo un problema al momento de programar para que sólo acepte 8 dígitos en un código de barras, tengo entendido que es con un strlen(.. pero me marca un error.
Lo que tiene que hacer este programa es que ingrese un código de barras y lo guarde pero sólo tiene que aceptar 8 dígitos, ni más ni menos, y tampoco letras.
Tengo este código pero me marca error: Estas usando una función para char propiamente, y tu variable "Datos[c].CodigoBarras" es un numero entero. Lo que podrías hacer es calcular previamente los dígitos de dicho número y luego aplicar la condición a la variable contador si es 8 o no.. Para contar los dígitos de "VDatos[c].CodigoBarras" te valdría el siguiente código, cambiando "n" por "Datos[c].CodigoBarras":#include<iostream> using namespace std; int main() { int n,contador=0; cin>>n; while(n>0){ contador++; n=n/10;} cout<<contador<<endl; return 0; }
|
|
|
1234
|
Programación / Programación C/C++ / Re: crear un programa que haga triangulos y cuadrados con caracteres de relleno
|
en: 20 Octubre 2012, 22:21 pm
|
Sólo te queda implementar el repetir otra figura:#include<stdio.h> int main(void){ /*variables*/ int numero,i,j,k; int fila,columna,espacio,blanco; char caracter; char sino; /*entorno*/ printf("Introduce numero de filas (1-15):"); scanf("%d",&numero); printf("numero de espacios:"); scanf("%d",&espacio); printf("caracter de relleno:"); fflush (stdin); scanf("%c",&caracter); if(caracter>='0' && caracter<='9'){ for (fila=1; fila<=numero; fila++) { for (blanco=1; blanco<=numero-fila+espacio; blanco++) printf(" "); for (columna=1; columna<=2*fila-1; columna++) printf("%c",caracter); printf("\n"); } } else for (i=1;i<=numero;i++) { for (k=1; k<=espacio; k++) printf(" "); { for (j=1;j<=numero;j++) printf("%c",caracter); printf("\n"); } } return 0; }
|
|
|
1235
|
Programación / Programación C/C++ / Re: Warning al compilar un encriptador
|
en: 14 Octubre 2012, 18:23 pm
|
Este code lo hize solo pa practicar con malloc ; definitivamente quedaria mas bonito usando arrays estaticos Ya me parecía a mí. Pero creo que puedes prescindir de "char caract;":#include <stdlib.h> #include <stdio.h> int main() { char *frase=(char*)malloc(sizeof(char)*64); char *nuevo=(char*)malloc(sizeof(char)*64); char *start= nuevo; printf("Original: "); gets(frase); printf(" Cifrado: "); for (;*frase!= '\0';) { if (*frase==32 ) *nuevo++= *frase++; else *nuevo++= 219- *frase++; } *nuevo++='\0'; printf(" Cifrado: %s \n", start); return 0; }
Un saludo!
|
|
|
1236
|
Programación / Programación C/C++ / Re: Error en ejercicio de clase
|
en: 14 Octubre 2012, 16:39 pm
|
He respetado en lo posible el "formato" de tu código, ya que yo lo hubiera hecho diferente. Pero bueno, tienes corregido lo de valores negativos y que el usuario no pueda entrar valores que no sean entre 1 y 3. Además no me gusta perder siempre, con lo que le he puesto una variante a la máquina:quita fichas de forma aleatoria, así puedo ganar yo. Puedes desactivar esa opción eliminando el rand y activando la otra opción:#include <stdio.h> #include <stdlib.h> #include <time.h> int main(){ int fquitahombre=0,fquitamaquina=0,ftotales=0; char c; srand(time(0)); printf("Bienvenido al juego de las fichas.\n"); printf("Este juego consiste en ir retirando fichas, de un total de 17, el que retire la ultima ficha pierde.\n"); printf("En cada turno puedes retirar 1,2 o 3 fichas.\n"); printf("Empieza el juego:\n"); ftotales=17; while(ftotales>0){ printf("Retira las fichas que desees entre 1 y 3:"); scanf("%d",&fquitahombre); while(fquitahombre > 3 || fquitahombre < 0){ printf("Te dije entre 1 y 3:"); scanf("%d",&fquitahombre); } ftotales=ftotales-fquitahombre; if (ftotales<=0) { printf("Quedan 0 fichas\n"); printf("Has retirado la ultima ficha, por lo tanto, has perdido."); break; } /*fquitamaquina=4-fquitahombre;*/ /*<==tu opcion para perder siempre*/ fquitamaquina=1+rand() % 3 ; /*mi opcion aleatorio, para poder ganar*/ ftotales=ftotales-fquitamaquina; if (ftotales<=0) { printf("Quedan 0 fichas\n"); printf("Has ganado."); break; } printf("La maquina quita %.0d\n",fquitamaquina); printf("Quedan %0.d fichas\n",ftotales); } c=getchar(); c=getchar(); return 0; }
|
|
|
1237
|
Programación / Programación C/C++ / Re: Warning al compilar un encriptador
|
en: 14 Octubre 2012, 14:12 pm
|
Usando arrays estáticos te queda más "light":#include <stdlib.h> #include <stdio.h> int main() { int i; char frase[64],nuevo[64]; printf("Original: "); gets(frase); for ( i=0;frase [i]!='\0';i++) nuevo[i]=219-frase [i]; nuevo[i]='\0'; printf(" Cifrado: %s", nuevo); return 0; }
|
|
|
1238
|
Programación / Programación C/C++ / Re: RETOS C++
|
en: 13 Octubre 2012, 15:45 pm
|
Para el diccionario por fuerza bruta. Genero una clave de forma aleatoria y la descubro letra a letra:#include <iostream> #include <ctime> #include <cstdlib> #define TAMAYO 4 char busca_codigo (char c); using namespace std; int main() { srand(time(NULL)); string codigo; for (int j=0;j<TAMAYO;j++) codigo [j]=rand()%(122-96) + 97; for (int j=0;j<TAMAYO;j++) cout <<codigo [j]; cout << endl; for (int j=0;j<TAMAYO;j++) busca_codigo (codigo [j]); return 0; } char busca_codigo (char c) { for (int i = 97; i <= 122; i++) { if(c==char (i)) { cout<< char (i); break; } } }
|
|
|
1239
|
Programación / Programación C/C++ / Re: RETOS C++
|
en: 12 Octubre 2012, 21:48 pm
|
Solucion al cuatro:#include <iostream> #include <cstring> #include <cstdio> using namespace std; int main () { int i=1,n; char texto1[40],texto2[40]; cout<<"Cuantas palabras desea ingresar: "; cin >> n ; getchar (); cout<<"\nIntroduce la " << i << " palabra: "; gets(texto1); while (i<n) { cout<<"\nIntroduce la " << i+1 << " palabra: "; gets(texto2); if (strcmp(texto1, texto2)<0) { i++;continue; } else strcpy (texto1,texto2); i++; } cout << "\nLa palabra menor es: " << texto1 << endl; return 0; }
|
|
|
1240
|
Programación / Programación C/C++ / Re: como ago un programa en c++ que imprima numeros de una cantidad a otra?
|
en: 12 Octubre 2012, 14:08 pm
|
Con la misma presuncion que yoxter, pero para variar con un FOR: #iclude <iostream> using namespace std; int main(int argc, char *argv[]) { int i,principio,fin,escala; cout << "ingrese el numero de comienso: " ; cin >> principio; cout << "ingre el numero limite: " ; cin >> fin; cout << "ingrese el numero de subida: " ; cin >> escala; for (i=principio+escala;i<=fin;i+=escala) cout << i << endl; return 0; }
|
|
|
|
|
|
|