¡Buenas!
¿Has probado a inicalizar la variable sumatoria a cero antes de entrar en el for?
¡Saludos!
¿Has probado a inicalizar la variable sumatoria a cero antes de entrar en el for?
¡Saludos!
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úCita de: wolfbcn en 21 Julio 2012, 14:04 PM
El PP pide responsabilidades
El principal partido de la oposición criticó ayer los hechos y preguntó quién pagará esta multa y cuántos pagos pendientes podrían realizarse con esta cantidad.
Cita de: wolfbcn en 21 Julio 2012, 14:04 PM
Caso paradójico
No deja de ser sorprendente que un ejecutivo que ha apoyado la Ley Sinde-Wert contra la piratería sea responsable del pirateo de programas informáticos con el objetivo de ahorrar unos cuantos miles de euros. No hay que olvidar que hay otros gobiernos socialistas que han decidido utilizar software libre para prescindir del software de pago de Microsoft.
if(algo == loquesea)
...
#include <stdio.h>
#include <string.h>
int main(int argc, char *argv[])
{
char cadena[] = " Necesito repasar matematicas basicas";
char *token,*resto,lector;
token = strtok(cadena," ");
printf("token: %s\ncadena + strlen(token) + 1: %s\ncadena + strlen(cadena) + 1: %s\n",
token, cadena + strlen(token) + 1, cadena + strlen(cadena) + 1);
while((lector = getchar()) != '\n' && lector != EOF);
return 0;
}
#include <stdio.h>
#include <string.h>
#include <time.h>
#define ITER 134217728
int main ()
{
char str[] ="Hola como estas ?";
char str2[] = "Hola como estas ?";
char * pch;
char * valor1;
char * valor2;
int i,inicio,longitud;
inicio = time(NULL);
for(i = 0 ; i < ITER ; i++)
{
strcpy(str,str2);
pch = strtok (str," "); // Empiezo a buscar la 1 coincidencia del espacio en blanco
while (pch != NULL)
{
valor1 = (pch); // Aqui se almacena la 1 palabra de la frase separa por el espacio en blanco
pch = strtok (NULL, ""); // Aqui ya no le pongo el espacio en blanco porque deseo el resto de la frase completa
valor2 = (pch); // Almaceno el resto de la frase en la variable
break; // Interrumpo el bucle pues como dije solo queria obtener la 1 palabra con el espacio como delimitador
}
}
printf("Metodo 1: %d segundos.\n",time(NULL) - inicio);
inicio = time(NULL);
for(i = 0 ; i < ITER ; i++)
{
strcpy(str,str2);
longitud = strlen(str);
pch = strtok(str," ");
if(pch)
if(strlen(str) != longitud)
valor2 = &str[strlen(str) + 1];
}
printf("Metodo 2: %d segundos.\n",time(NULL) - inicio);
inicio = time(NULL);
for(i = 0 ; i < ITER ; i++)
{
strcpy(str,str2);
pch = strtok(str," ");
if (pch)
valor2 = strtok(NULL, "");
}
printf("Metodo 3: %d segundos.\n",time(NULL) - inicio);
return 0;
}
Metodo 1: 19 segundos.
Metodo 2: 13 segundos.
Metodo 3: 19 segundos.
Process returned 0 (0x0) execution time : 51.184 s
Press any key to continue.
Cita de: BlackZeroX (Astaroth) en 17 Julio 2012, 05:15 AM
ptr2 = ptr1 ? (char*)(cadena + strlen(ptr1) + 1):
for(i = 0 ; i < ITER ; i++)
{
strcpy(CADENA, str2);
ptr1 = strtok((char*)CADENA, ESPACIO);
if (ptr1)
ptr2 = strtok(NULL, END);
}
Cita de: BlackZeroX (Astaroth) en 17 Julio 2012, 01:47 AM
Es mas optimo el que uso @User no da tantos giros innecesarios...
Dulces Lunas!¡.
#include <stdio.h>
#include <string.h>
#include <time.h>
#define ITER 134217728
int main ()
{
char str[] ="Hola c";
char str2[] = "Hola c"; /* para sobreescribir str en cada iteracion */
char * pch;
char * valor1;
char * valor2;
int i,inicio;
inicio = time(NULL);
for(i = 0 ; i < ITER ; i++)
{
strcpy(str,str2);
pch = strtok (str," "); // Empiezo a buscar la 1 coincidencia del espacio en blanco
while (pch != NULL)
{
valor1 = (pch); // Aqui se almacena la 1 palabra de la frase separa por el espacio en blanco
pch = strtok (NULL, ""); // Aqui ya no le pongo el espacio en blanco porque deseo el resto de la frase completa
valor2 = (pch); // Almaceno el resto de la frase en la variable
break; // Interrumpo el bucle pues como dije solo queria obtener la 1 palabra con el espacio como delimitador
}
}
printf("Metodo 1: %d segundos.\n",time(NULL) - inicio);
inicio = time(NULL);
for(i = 0 ; i < ITER ; i++)
{
strcpy(str,str2);
pch = strtok(str," ");
if(pch)
valor2 = &str[strlen(str) + 1];
}
printf("Metodo 2: %d segundos.\n",time(NULL) - inicio);
inicio = time(NULL);
for(i = 0 ; i < ITER ; i++)
{
strcpy(str,str2);
pch = strtok(str," ");
if (pch)
valor2 = strtok(NULL, "");
}
printf("Metodo 3: %d segundos.\n",time(NULL) - inicio);
return 0;
}
Metodo 1: 19 segundos.
Metodo 2: 10 segundos.
Process returned 0 (0x0) execution time : 29.150 s
Press any key to continue.