- lovag05: Híradó
- MasterDeeJay: Natív 3Dfx Glide Windows11 alatt Voodoo1 és Voodoo2-vel.
- sziku69: Fűzzük össze a szavakat :)
- sziku69: Szólánc.
- Luck Dragon: Asszociációs játék. :)
- Sirandrish: Dohányzás Vége(!?)
- MasterDeeJay: Kínai DDR5 ajánlható?- Puskill PSK-D5M6400BH-16G
- Sub-ZeRo: Euro Truck Simulator 2 & American Truck Simulator 1 (esetleg 2 majd, ha lesz) :)
- weiss: Pant* rant
- Banyasz papa: segitség kérés
-
LOGOUT
Új hozzászólás Aktív témák
-
pmonitor
aktív tag
válasz
kovisoft #16716 üzenetére
Azt hiszem, hogy sikerült mind a 2 pontodat kiküszöbölnöm:
int patoi(const char* str)
{
char* temp = 0, neg = 0;
int i;
while (isspace(*str)) str++;
if (*str == '-')
{
str++;
neg = 1;
}
else if (*str == '+') str++;
while (*str == '0') str++;
temp = str;
while (*temp)
{
if (!(*temp >= '0' && *temp <= '9')) break;
temp++;
}
temp--;
i = 1;
int ret = 0;
for (; temp >= str; temp--)
{
if (*temp >= '0' && *temp <= '9')
{
ret += ((*temp - '0') * i);
}
else break;
i *= 10;
}
if (ret < 0 && !neg) ret = INT_MAX;
else if (neg)
{
if (ret == INT_MAX)
{
char arr[11];
strncpy(arr, str, 10);
arr[10] = '\0';
if (!strcmp(arr, "2147483647")) ret = INT_MIN + 1;
else ret = INT_MIN;
}
else ret *= -1;
}
return ret;
}A futásidő kb. ugyanaz, mint az atoi(..)-nek. Általában kicsit gyorsabb. Mégsem lettem zseni.
De azért nézzétek át légyszi, hogy ebben találsz-e hibát. -
pmonitor
aktív tag
válasz
kovisoft #16716 üzenetére
Szomorú vagyok.
Az 1. pontoddal még nem tudtam mit kezdeni. A 2. pontoddal igen, úgy, hogy a végén printf(...)-el kiírattam val értékét. Módosítással most kb. azonos időben futnak le(az enyém határozottan gyorsabb). Jelenleg ez a függvényem:
int patoi(const char* str)
{
char* temp = 0, neg = 0;
int i;
while (isspace(*str)) str++;
if (*str == '-')
{
str++;
neg = 1;
}
else if (*str == '+') str++;
while (*str == '0') str++;
temp = str;
while (*temp)
{
if (!(*temp >= '0' && *temp <= '9')) break;
temp++;
}
temp--;
i = 1;
int ret = 0;
for (; temp >= str; temp--)
{
if (*temp >= '0' && *temp <= '9')
{
ret += ((*temp - '0') * i);
}
else break;
i *= 10;
}
if (neg) ret *= -1;
return ret;
}
Új hozzászólás Aktív témák
● olvasd el a téma összefoglalót!
- BESZÁMÍTÁS! MSI B450M R5 3600 16GB DDR4 512GB SSD GTX 1080 8GB Rampage SHIVA ADATA 600W
- Telefon felváráslás!! Xiaomi Redmi Note 11, Xiaomi Redmi Note 11 Pro, Xiaomi 11 Lite
- ÁRCSÖKKENTÉS Menő retró konfig: Q9550, Gigabyte P43, 4GB RAM, ASUS GT730,
- LG 45GR95QE - 45" Ívelt OLED / 2K WQHD / 240Hz 0.03ms / NVIDIA G-Sync / FreeSync Premium / HDMI 2.1
- HPE Aruba PoE+ L3 switch raktárról azonnal elérhető!
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest