C/Visual C - error con orednamento de un arreglo en 2 ficheros

 
Vista:

error con orednamento de un arreglo en 2 ficheros

Publicado por NicoKratos (6 intervenciones) el 25/04/2010 22:31:18
Estimados, tengo el siguiente problema.
el programa consiste en generar un arreglo de 10 numeros al azar x n filas, ( no es matriz)
la cosa es que se vayan generando 10 numeros random y el usuario ingresa n cantidad de filas o arreglos a generar.
en el archivo.txt se envian los numeros random.
y en el archivo otro.txt se ordenan y envian al archivo otro.txt

el problema es que en el archivo otro.txt se genera una linea de mas
copiando la linea anterior.

#include <stdio.h>
#include <stdlib.h>
main()
{
/*Declaracion de variables y archivos*/
int i, j, c=0,aux,cantFilas,arg[10];
FILE *Archivo1, *Archivo2;
char arg1[10],val,p;


/*Pregunta la cantidad de n filas a producir, validando que solo inghresen enteros*/
do
{
setbuf(stdin, NULL);
printf("Ingrese numero de filas a generar: ");
}while(!p == scanf("%d",&cantFilas));

/* ingreso de numeros random en arreglo de 10*/
Archivo1 = fopen("Archivo.txt","w")
while ( cantFilas > c )
{
for(i = 1; i <= 10; i++)
{
arg[ i ] = rand()%10
fprintf(Archivo1,"%d",arg[ i ])
}//Fin for
fprintf(Archivo1,"\n");
c++;
}//fin while
fclose(Archivo1);//cierro archivo1
/*fin ingreso de numero ramdon*/

/*leer de archivo.txt los numeros random y, los oredenos y los mando al otro.txt*/
Archivo2 = fopen("Otro.txt","w");//Abro otro.txt
Archivo1 = fopen("Archivo.txt","r"); //Abro Archivo.txt
while (!feof(Archivo1))//Realiza un recorrido del archivo1
{

fread(arg1,sizeof(char),11,Archivo1);
/*Ordenamiento de datos via metodo burbuja*/
for(j = 0; j <(10-1); j++)
{
for(i = j+1; i<10; i++)
{
if( arg1[ i ] < arg1[ j ])
{
aux = arg1[ i ];
arg1 = arg1[ j ];
arg1[ j ] = aux;
}//fin if que genera un ordenamiento
}//fin for i que genera un ordenamemiento
}//Fin for j que genera un ordenamiento
fwrite(arg1,sizeof(char),11,Archivo2);
}//fin while que busca el feof del archivo.txt

fclose(Archivo1);//se cierra arch2
fclose(Archivo2);//se cierra arch1

printf("Gracias, vuelva pronto.\n");
system("\n PAUSE");
}


eso ojala alguien me ayude.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder