Programa de combinación

Resuelto
jesper1 Mensajes publicados 69 Estado Miembro -  
yg_be Mensajes publicados 23437 Fecha de registro   Estado Colaborador Última intervención   -
Bonjour,
Quiero poder escribir un programa en C que me muestre las diferentes combinaciones que se pueden hacer con los dígitos 0 1 2 3 4 5 6 7 8 9. Un mismo dígito puede repetirse hasta diez veces comenzando por 0000000000 y luego 0000000001, pero hasta ahora solo he logrado escribir un programa que muestra los números entre 0 y 9999999999 (el programa funciona y lleva cuatro horas funcionando????) pero no es realmente lo que busco, así que... ¿puede ayudarme?

2 respuestas

yg_be Mensajes publicados 23437 Fecha de registro   Estado Colaborador Última intervención   Ambassadeur 1 588
 
Hola,

¿puedes compartir tu programa, utilizando las etiquetas de código: https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code

¿puedes también explicar el resultado que esperas, y en qué se diferencia del resultado que obtienes, tal vez con un ejemplo?
¿quizás compartir el enunciado preciso del ejercicio?
0
jesper1 Mensajes publicados 69 Estado Miembro
 
Es un programa muy simple basado en el bucle "for"

 #include <stdio.h> #include <stdlib.h> main() { int i ; for ( i=0 ; i<=9999999999 ; i++ ) { printf ("%d\n", i) ; } } 


Así que, en resumen, es eso. Al ejecutar este código, el programa comienza a listar todos los números de 0 a 9999999999. Lo que yo quisiera es que, a partir de los dígitos 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, me liste todos los números de diez cifras (todas las combinaciones posibles) que se podrían tener con estos dígitos, teniendo en cuenta que un mismo dígito se puede repetir 10 veces. En resumen, comenzará con 0000000000 y terminará con 9999999999.
El ejercicio es personal.
0
yg_be Mensajes publicados 23437 Fecha de registro   Estado Colaborador Última intervención   1 588 > jesper1 Mensajes publicados 69 Estado Miembro
 
no explicas claramente en qué se desvía lo que obtienes de lo que deseas obtener. quizás muestres un ejemplo.
el programa claramente hace lo que fue escrito para hacer. ¿cuál es el objetivo del ejercicio personal? ¿cómo llegaste a escribir un programa que parece no hacer lo que deseas hacer?
¿quieres simplemente mostrar los ceros no significativos? si es así, lee esto: https://docs.microsoft.com/fr-fr/cpp/c-runtime-library/format-specification-syntax-printf-and-wprintf-functions?view=msvc-160&viewFallbackFrom=vs-2019
0
jesper1 Mensajes publicados 69 Estado Miembro > yg_be Mensajes publicados 23437 Fecha de registro   Estado Colaborador Última intervención  
 
El programa que escribí hace lo que se supone que debe hacer y lista los números que se encuentran entre 0 y 9999999999. Solo digo que eso es lo que he logrado hacer. Lo que yo quiero es un programa que tome los dígitos 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 y los combine de diferentes maneras posibles para formar un número de diez cifras (del 0 al 9). En resumen, quiero un programa que me liste todos los números de 10 cifras que se pueden formar con 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. Los primeros números de la lista deberían ser 0000000000 seguido de 0000000001 seguido de 0000000002 seguido de 0000000003 seguido de 0000000004 y así sucesivamente. Los últimos serán 9999999997 seguido de 9999999998 y finalmente 9999999999.
0
yg_be Mensajes publicados 23437 Fecha de registro   Estado Colaborador Última intervención   1 588 > jesper1 Mensajes publicados 69 Estado Miembro
 
¿No obtienes exactamente lo que deseas, aparte de los ceros no significativos?
0
jesper1 Mensajes publicados 69 Estado Miembro > yg_be Mensajes publicados 23437 Fecha de registro   Estado Colaborador Última intervención  
 
El problema son justamente esos ceros no significativos. Me preguntaba si hay posibilidad de mostrarlos como el resto. Por ejemplo, el primer número que me muestra es 1, pero como quiero un número de 10 caracteres, ¿podría mostrarme en su lugar "0000000001" en lugar de solo "1"?
0
yg_be Mensajes publicados 23437 Fecha de registro   Estado Colaborador Última intervención   Ambassadeur 1 588
 
¿Quieres obtener esto?
main() { int i1,i2 ; for ( i1=0 ; i1<=9 ; i++ ) { for ( i2=0 ; i2<=9 ; i++ ) { printf ("%d%d\n", i1, i2) ; } } }
0