El numero de valores únicos que puede generar la función rand es igual a RAND_MAX + 1 ...
Un saludo
Un saludo
Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.
Mostrar Mensajes MenúFILE *in;
char linea[MAX_CHARS];
double num;
/* ... */
while (fgets(linea, MAX_CHARS, in) != NULL)
if (sscanf(linea, " bi212 SerieTh232Rn220 %lf", &num) == 1)
break;
if (feof(in)){
/* Fin de archivo ==> No se encontro la linea */
}else if (ferror(in)){
/* Error en la lectura del archivo */
}else {
printf("%e\n", num);
}
/* ... */
Cita de: Bachanilorac en 17 Noviembre 2014, 06:08 AMno sé cómo solucionar el tema del espacio, es decir si escribo un nombre compuesto sólo me imprime al revés el primer nombre.Eso sucede porque el operador ">>" solo lee una palabra, para leer una linea de texto debes utilizar la funcion getline.
Cita de: TonietFB en 16 Noviembre 2014, 22:53 PMY yo quiero que me saque de esta linia "bi212 SerieTh232Rn220 1.32e+002 2.54e-001 4.16e-001 14" el primer número, es decir que en el fichero de salida aparezca "1.32e+002"¿Buscas la primera linea que inicia literalmente con "bi212 SerieTh232Rn220" y extraer el numero de punto flotante a continuación de esta? Si es así puedes utilizar la función fgets para leer el archivo linea por linea junto con sscanf para verificar si esta cumple con el formato esperado.
Cita de: pacman22 en 17 Noviembre 2014, 01:53 AMEstuve depurando el codigo y vi que en esta parte numAlea[j]=( (rand()%100000) /100000) , solo genera 0's , no entiendo el por qPorque el resultado de "rand() % 100000" esta en el rango [0, 100000) y la división entera descarta la parte decimal, por ello el resultado de "(rand() % 100000) / 100000" siempre es cero.
Cita de: pacman22 en 17 Noviembre 2014, 01:53 AMnecesito generar numeros entre [0,1)Para ello debes utilizar "rand() / (RAND_MAX + 1.0)".
Cita de: leosansan en 16 Noviembre 2014, 14:05 PMIncluso más sencillo:frase3[letra2] = frase2[letra2++] = frase1[letra1];
frase3[letra2 /* B */] = frase2[letra2++ /* A */] = frase1[letra1];
a[i] = i++;
Cita de: AxelP en 15 Noviembre 2014, 23:33 PMSolo tengo una duda en la respuesta de leosansan, el código funciona, pero ¿Por qué le restas 1 en la parte de frase3[letra2 - 1]? Eso es lo único que no entiendoEs debido al uso del operador secuencial ",". Su comportamiento dada la expresión:
frase2[letra2++] = frase1[letra1] , frase3[letra2 - 1] = frase1[letra1];
frase3[letra2] = frase2[letra2] = frase1[letra1];
letra2++;
#include <iostream>
using std::cout;
using std::endl;
#include <string>
using std::string;
int main(int argc, char *argv[])
{
if (string(argv[1]) == string(argv[2]))
cout << "Son iguales" << endl;
else
cout << "Son desiguales" << endl;
return 0;
}
do {
scanf("%d", &v[i]);
}while (v[i - 1] < v[i]); /* Mientras v[i] sea MAYOR que v[i - 1] */