Tema destacado: Deseas probar algunas mejoras a la interfaz del foro? Prueba cake! acerca de
Autor
|
Tema: Dos Ejercicios en C (Leído 1,659 veces)
|
Saberuneko
Desconectado
Mensajes: 1.234
The Furry Geek
|
Bueno, ya empezamos con C en clase. Tengo hechos ya cuatro ejercicios, pero dos de ellos no consigo que funcionen bien, son los siguientes: 3.- En una estación de autobuses se requiere un programa que contabilice los billetes vendidos al cabo del día. Teniendo en cuenta que existen tres trayectos A,B,C cuyas tarifas con 6,12,18 € respectivamente. El programa pedirá al viajero que introduzca el número de billetes que desea y el trayecto, finalizando la emisión de billetes al introducir $ en el trayecto. Una vez terminada dicha emisión, el programa visualizará: NºBILLETES TOTAL EUROS A:.............. ................ B:.............. ................ C:............. .................Esto es lo que tengo hasta el momento, no quiero que me lo resuelvan, sino que me digan qué está mal y me orienten un poco sobre qué hay que corregir sin decírmelo literalmente: #include <stdio.h> main() { char opcion; int a=0,b=0,c=0,ap,bp,cp,x; printf("Introduzca un trayecto\n"); opcion=getchar(); printf("Introduzca cantidad\n"); scanf("%d",&x); while(opcion!='$') { switch(opcion) { case 'a': a=a+x; break; case 'b': b=b+x; break; case 'c': c=c+x; break; default: printf("Opcion erronea\n"); } printf("Introduzca un trayecto\n"); opcion=getchar(); printf("Introduzca cantidad\n"); scanf("%d",&x); } ap=a*6; bp=b*12; cp=c*18; printf("\tNºBILLETES\tTOTAL EUROS"); printf("A\t%d\t%d",a,ap); printf("B\t%d\t%d",b,bp); printf("C\t%d\t%d",c,cp); } 4.- Programa que visualice cuantos números de los N primeros (N introducido por teclado) cumplen las siguientes condiciones: - El producto de sus divisores es múltiplo de 5 - La suma de sus divisores es múltiplo de 3 - Cumple ambas condiciones anteriores a la vezEsto es lo que tengo de momento, lo mismo que en el anterior, quiero ver dónde he fallado para intentar corregirlo, no quiero que me lo den hecho: #include <stdio.h> main() { int cont,actual,n,res5,res3; printf("Introduzca n\n"); scanf("%d",&n); for(actual=1;actual<=n;actual++) { res5=0; res3=0; while(cont<=actual/2) { if(actual%cont==0) { res5=res5*cont; res3=res3+cont; } } if(res5%5==0) { printf("El producto de los divisores de %d es multiplo de 5\n",actual); } else { printf("El producto de los divisores de %d no es multiplo de 5\n",actual); } if(res3%3==0) { printf("La suma de los divisores de %d es multiplo de 3\n",actual); } else { printf("La suma de los divisores de %d no es multiplo de 3\n",actual); } if ((res5%5==0)&&(res3%3==0)) { printf("Cumplen ambas condiciones anteriores a la vez\n"); } else { printf("No cumplen ambas condiciones anteriores a la vez\n\n"); } } } Gracias por adelantado y un saludo, miau!
|
|
|
|
|
En línea
|
MIAU! <3
|
|
|
Shell Root
Desconectado
Mensajes: 2.456
Alex Jurado
|
Joder, hace mucho ratón que no programo en C. Pero recorte y organice un poco el código, no funciona correctamente, pero quizás te servirá de algo... #include <stdio.h> int main(){ char sOption; int sCant = 0; int a = 0; int b = 0; int c = 0; int aT = 0; int bT = 0; int cT = 0; while(sOption != '$'){ printf("Introduzca un trayecto:\n"); scanf("%c", &sOption); printf("Introduzca cantidad:\n"); scanf("%d", &sCant); switch(sOption){ case 'a': a = a + sCant; break; case 'b': b = b + sCant; break; case 'c': c = c + sCant; break; default: printf("Error.\n"); } } aT = a * 6; bT = b * 12; cT = c * 18; printf("\tNºBILLETES\tTOTAL EUROS\n"); printf("A\t%d\t\t%d\n", a, aT); printf("B\t%d\t\t%d\n", b, bT); printf("C\t%d\t\t%d\n", c, cT); return 0; } Resultado, alex@alex:~/Escritorio$ gcc PoC.c alex@alex:~/Escritorio$ ./a.out Introduzca un trayecto: a Introduzca cantidad: 3 $ NºBILLETES TOTAL EUROS A 3 18 B 0 0 C 0 0
|
|
|
|
|
En línea
|
 ---
|
|
|
diskontrol
Desconectado
Mensajes: 60
RAWR!
|
A simple vista se ven un par de errores en el segundo ejercicio; por ejemplo el acumulador res5 debes inicializarlo a 1, o la variable cont que no esta inicializada ni es incrementada.
Saludos!
|
|
|
|
|
En línea
|
Siempre ten tus cosas cuando las necesites con @Dropbox. ¡Una cuenta de 2 GB es gratis! http://db.tt/YxRhsCI
|
|
|
Saberuneko
Desconectado
Mensajes: 1.234
The Furry Geek
|
Ahora tienen pinta de funcionar, así me han quedado: #include <stdio.h> main() { char opcion; int a=0,b=0,c=0,ap,bp,cp,x; printf("Introduzca un trayecto\n"); scanf("%c",&opcion); while (opcion!='a'&& opcion!='b'&& opcion!='c' && opcion!='$') { printf("Opcion erronea\n"); printf("Introduzca un trayecto\n"); scanf("%c",&opcion); } while(opcion!='$') { printf("Introduzca cantidad\n"); scanf("%d",&x); getchar(); switch(opcion) { case 'a': a=a+x; break; case 'b': b=b+x; break; case 'c': c=c+x; break; default: printf("Opcion erronea\n"); } printf("Introduzca un trayecto\n"); scanf("%c",&opcion); while (opcion!='a'&& opcion!='b'&& opcion!='c' && opcion!='$') { printf("Opcion erronea\n"); printf("Introduzca un trayecto\n"); scanf("%c",&opcion); } } ap=a*6; bp=b*12; cp=c*18; printf("\tN BILLETES\tTOTAL EUROS\n"); printf("A:\t%d\t\t%d\n",a,ap); printf("B:\t%d\t\t%d\n",b,bp); printf("C:\t%d\t\t%d\n",c,cp); return 0; } El otro: #include <stdio.h> main() { int cont,actual,n,res5,res3,a=0,b=0,c=0; printf("Introduzca n\n"); scanf("%d",&n); for(actual=2;actual<=n;actual++) { res5=1; res3=0; cont=2; while(cont<=actual) { if(actual%cont==0) { res5=res5*cont; res3=res3+cont; } cont=cont+1; } if(res5%5==0) a=a+1; if(res3%3==0) b=b+1; if ((res5%5==0)&&(res3%3==0)) c=c+1; } printf("El producto de los divisores es multiplo de 5:\n%d\n",a); printf("La suma de los divisores es multiplo de 3:\n%d\n",b); printf("Cumplen ambas condiciones anteriores a la vez:\n%d\n",c); return 0; } Gracias por lo de iniciar res5 a 1 que ya me tenía loco. :3
|
|
|
|
|
En línea
|
MIAU! <3
|
|
|
|
| Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Pantallazos de ejercicios ejercicios 1 y 2
« 1 2 »
Ejercicios
|
soplo
|
25
|
73,130
|
21 Marzo 2011, 21:15
por hackvj
|
|
|
Ejercicios en C
Ejercicios
|
soplo
|
0
|
50,902
|
2 Julio 2004, 00:28
por soplo
|
|
|
Ejercicios C++
Ejercicios
|
soplo
|
0
|
78,710
|
5 Julio 2004, 06:08
por soplo
|
|
|
Ejercicios de ASP
Ejercicios
|
Cobac
|
0
|
11,223
|
9 Julio 2004, 07:12
por Cobac
|
|
|
Ejercicios PHP
Ejercicios
|
Azielito
|
0
|
37,060
|
17 Julio 2004, 10:53
por Azielito
|
|