Tengo este codigo que me combina los numeros que yo pida (gracias a leo :) ) que me ayudo a hacerlo, bien estoy tratando de que estos resultados me los guarde en un txt pero estoy trabado logro hacer el archivo pero solo me guarda lo que esta en ese momento ? pongo el codigo a ver que hago o que no hago
///programa de combinaciones numericas
#include <iostream>
#include <cstdlib>
#include <stdlib.h>//Libreria para usar la funcion al final del codigo system();
#include <fstream>
using namespace std;
int main () {
int total,i,j,k=0,l=0,ver=0,ver_=0,p;
cout<<"Cuantos numeros desea ingresar?: ";
cin>>total;
int numeros[total],n_par[total],n_impar[total];
cout<<"Cuantos numeros desea ver cada vez?: ";
cin>>ver;
int num[ver];
ver_=ver;
for( i = 0; i < total; i++){
cout<<"Ingrese el "<<i+1<<" numero: ";
cin >> numeros[i];
for( j = i-1; j >=0 ; j--){
if(numeros[i] == numeros[j]){
cout<<"El numero esta repetido ingrese otro\n";
i--;
break;
}
}
}
p=total-ver;
for( k = 0; k <=total-ver; k++){
l=0;
inicio:
ver_=ver;
do{
cout<< numeros[k]<<" ";
for( i = 1+k+l; i < ver-1+k+l; i++){
cout<< numeros[i]<<" ";
}
cout<< numeros[ver_-1+k+l]<<" ";
if (ver_-1+k+l==total-1 ) {
cout<< "entro "<< endl;;
l++;p--;
if (p<0) {
l=0;break;
}
else goto inicio;
}
ver_++;system("pause");
cout<< endl;
}while (ver_+k<=total);
}
//aca estoy tratando de guadar los resultados
string fichero ("lista.txt");//---ok
ofstream f_lista (fichero.c_str()); //--ok
if (!f_lista) { //---ok
cout << "El fichero " << fichero << " no existe."; //--ok
exit (0);//----ok
}
///ya aca no se como hacerle para ir guardando cada uno de los resultados como me los muestra la consola
f_lista <<ver_<< endl;
//f_lista <<numeros[i] << endl;
/////
system("pause");
return 0;
}
Así como lo vas imprimiendo en consola, lo imprimes en el archivo, es decir, dentro del mismo for ya que la consola la puedes ver como un archivo.
Osea que seria aca
do{
cout<< numeros[k]<<" ";
for( i = 1+k+l; i < ver-1+k+l; i++){
cout<< numeros[i]<<" ";
aqui iria no ? <------------------------------------------
No lo logro he cambiado por todo el for y nada que hago de mal lo pongo a ver ?
#include <iostream>
#include <cstdlib>
#include <stdlib.h>//Libreria para usar la funcion al final del codigo system();
#include <fstream>
using namespace std;
int main () {
int total,i,j,k=0,l=0,ver=0,ver_=0,p;
cout<<"Cuantos numeros desea ingresar?: ";
cin>>total;
int numeros[total],n_par[total],n_impar[total];
cout<<"Cuantos numeros desea ver cada vez?: ";
cin>>ver;
int num[ver];
ver_=ver;
ofstream archivo("numeros.txt");//////////////////////////creamos el archivo
for( i = 0; i < total; i++){
cout<<"Ingrese el "<<i+1<<" numero: ";
cin >> numeros[i];
for( j = i-1; j >=0 ; j--){
if(numeros[i] == numeros[j]){
cout<<"El numero esta repetido ingrese otro\n";
i--;
break;
}
}
}
p=total-ver;
for( k = 0; k <=total-ver; k++){
l=0;
inicio:
ver_=ver;
do{
cout<< numeros[k]<<" ";
for( i = 1+k+l; i < ver-1+k+l; i++){
cout<< numeros[i]<<" ";
archivo<<"Numero: "<<numeros[i] <<endl; /////no doy
}
cout<< numeros[ver_-1+k+l]<<" ";
if (ver_-1+k+l==total-1 ) {
cout<< "entro "<< endl;
l++;p--;
if (p<0) {
l=0;break;
}
else goto inicio;
}
ver_++;system("pause");
cout<< endl;
}while (ver_+k<=total);
}
archivo.close();//Cerramos el archivo
system("pause");
return 0;
}
Explícame un poco que quieres hacer o que se supone que debería hacer tu código porque no lo estoy siguiendo del todo
Cita de: naderST en 15 Diciembre 2012, 19:44 PM
Explícame un poco que quieres hacer o que se supone que debería hacer tu código porque no lo estoy siguiendo del todo
Bien si ejecutas el código veras que hace combinaciones numéricas según le pidas hace combinaciones de los numeros que introduzcas y lo muestra en resultados que le pidas ejemplo : introduces 10 numeros desde 01 hasta el 10 este te los combina de cuatro en cuatro o segun le pidas como lo muestre
ejemplo
1 2 3 4 5 6 7 8 10
10 numeros que introduces y le pides que te los de en resultados de cuatro
1 2 3 4
1 2 3 5
1 2 3 6
1 2 3 7
1 2 3 8
1 2 3 9
despues cambia a:
1 2 3 10
1 3 4 5
1 3 4 6
1 3 4 7
1 3 4 8
1 3 4 9
y asi combina hasta que se acaba el ciclo
saludos luis
lo meti al visual c++ lo compile y me fije los errores, no soy muy bueno apenas aprendiz pero veo que los errores indican que a las matrices le tenes que meter como dato una constante
error C2057: se esperaba una expresión constante
en la parte int numeros[total],n_par[total],n_impar[total]
una solucion tener matrices dinamicas, aca pongo una pagina porque no llegue tan lejos todavia :) http://www.alanchavez.com/matrices-dinamicas-en-c-desmitificadas/ (http://www.alanchavez.com/matrices-dinamicas-en-c-desmitificadas/)
de todas formas la lógica del problema indica que deba ser desde 01 a 10?...no seria desde 00 a 09?
Cita de: flony en 15 Diciembre 2012, 21:39 PM
lo meti al visual c++ lo compile y me fije los errores, no soy muy bueno apenas aprendiz pero veo que los errores indican que a las matrices le tenes que meter como dato una constante
error C2057: se esperaba una expresión constante
en la parte int numeros[total],n_par[total],n_impar[total]
una solucion tener matrices dinamicas, aca pongo una pagina porque no llegue tan lejos todavia :) http://www.alanchavez.com/matrices-dinamicas-en-c-desmitificadas/ (http://www.alanchavez.com/matrices-dinamicas-en-c-desmitificadas/)
de todas formas la lógica del problema indica que deba ser desde 01 a 10?...no seria desde 00 a 09?
El código compila, en dado casos los errores son lógicos. Ese error que te arroja el compilador de vc++ sucede cuando tratas de declarar el arreglo global de un tamaño variable, si la declaración del arreglo se encuentra dentro de una función, como en este caso, debería compilar.
Error C2057http://msdn.microsoft.com/en-us/library/eff825eh(v=vs.71).aspx
lo que quiero guardar son " los cout los quiero !imprimir en un fichero de texto".
luis
Cita de: luis456 en 16 Diciembre 2012, 08:49 AM
lo que quiero guardar son " los cout los quiero !imprimir en un fichero de texto".
luis
#include <iostream>
#include <cstdlib>
#include <fstream>
using namespace std;
int main () {
int total,i,j,k=0,l=0,ver=0,ver_=0,p;
char cadena[128];
ofstream fs("numeros.txt");
cout<<"Cuantos numeros desea ingresar?: ";
cin>>total;
int numeros[total],n_par[total],n_impar[total];
cout<<"Cuantos numeros desea ver cada vez?: ";
cin>>ver;
int num[ver];
ver_=ver;
for( i = 0; i < total; i++){
cout<<"Ingrese el "<<i+1<<" numero: ";
cin >> numeros[i];
for( j = i-1; j >=0 ; j--){
if(numeros[i] == numeros[j]){
cout<<"El numero esta repetido ingrese otro\n";
i--;
break;
}
}
}
p=total-ver;
for( k = 0; k <=total-ver; k++){
l=0;
inicio:
ver_=ver;
do{
fs<< numeros[k]<<" ";
cout<< numeros[k]<<" ";
for( i = 1+k+l; i < ver-1+k+l; i++){
fs<< numeros[i]<<" ";
cout<< numeros[i]<<" ";
}
fs<< numeros[ver_-1+k+l]<<" ";
cout<< numeros[ver_-1+k+l]<<" ";
if (ver_-1+k+l==total-1 ) {
fs<< "entro "<< endl;
cout<< "entro "<< endl;
l++;p--;
if (p<0) {
l=0;break;
}
else goto inicio;
}
ver_++;
fs<< endl;
cout<< endl;
}while (ver_+k<=total);
}
fs.close();
ifstream fe("numeros.txt");
fe.getline(cadena, 128);
cout << cadena << endl;
system("pause");
return 0;
}
Saluditos!.P.D: Recuerda que sólo va para combinaciones de n elemnetos tomados de tres en tres los otros casos están pendientes de implementar.
Gracias leo lo he probado y me da los resultados de esta manera
Numero: 13
Numero: 14
Numero: 13
Numero: 14
Numero: 13
Numero: 14
Numero: 13
Numero: 14
Numero: 13
Numero: 14
Numero: 13
Numero: 14
Numero: 13
Numero: 14
Numero: 14
Numero: 15
Numero: 14
Numero: 15
Numero: 14
Numero: 15
Numero: 14
Numero: 15
Numero: 14
Numero: 15
Numero: 14
Numero: 15
Numero: 15
Numero: 25
Numero: 15
Numero: 25
Numero: 15
Numero: 25 <---corto aca por lo largo
Introduzco 10 numeros y pido que se vena en cuatro los resultados lo que se vería a si, que es como lo muestra la consola
1 2 3 4
1 2 3 5
1 2 3 6
lo he probado pero no los muestra de esa forma a menos que haya yo echo algo mal jeje
Luis
Cita de: leosansan en 16 Diciembre 2012, 14:42 PM
Saluditos!.
Citar
P.D: Recuerda que sólo va para combinaciones de n elementos tomados de tres en tres los otros casos están pendientes de implementar.
Bueno esto no serviria para hacer lo que busco ?
cout<<"\n\nRESULTADOS COMBINADOS\n";
archivo<<"\nRESULTADOS COMBINADOS\n";//Guardamos en el archivo
for(int i = 0, j = contador - 5; j >= 0; i++, j--){
cout<<resultados[i]<<" "<<resultados[i + 2]<<" "<<resultados[i + 4]<<" ";//Muestro los 3 numeros del lado izquierdo
archivo<<resultados[i]<<" "<<resultados[i + 2]<<" "<<resultados[i + 4]<<" ";//Guardo en el archivo los 3 numeros del lado izquierdo
cout<<resultados[j]<<" "<<resultados[j + 2]<<" "<<resultados[j + 4];//Muestro los 3 numeros del lado derecho
archivo<<resultados[j]<<" "<<resultados[j + 2]<<" "<<resultados[j + 4];//Guardo en el archivo los 3 numeros del lado derecho
cout<<endl;//Bajamos una linea
archivo<<endl;//Guardamos una bajada de linea en el archivo
}
archivo.close();//Cerramos el archivo
system("pause");//Damos una pausa antes de finalizar el programa
return 0;
Cita de: luis456 en 17 Diciembre 2012, 21:09 PM
Bueno esto no serviria para hacer lo que busco ?
CitarSi lo que buscas es guardar las combinaciones en el fichero "numeros.txt" el código que te puse en el anterior post -un poco más arriba de este- lo hace. El fichero de txt lo encuentras en la carpeta donde tengas guardado el programa.
Saluditos!.
Cita de: leosansan en 17 Diciembre 2012, 21:36 PM
No se en que andaría pensando :) listo ya funciona como quería " Gracias Leo "
doy este tema acabado.... a por otro jejeje.......
Gracias también a los que participaron
Luis