taxi driver
Hectopat
- Katılım
- 6 Şubat 2020
- Mesajlar
- 276
- Çözümler
- 1
Daha fazla
- Cinsiyet
- Erkek
Kodda segmantasyon hatası alıyorum. Eğer maindeki else yi if (argc != 2) yaparsam sıkıntı almıyorum.
Yardımcı olursanız sevinirim.
Yardımcı olursanız sevinirim.
Kod:
#include <unistd.h>
int ft_atoi(char *str)
{
int i = 0;
int sig;
int booba = 0;
if(str[i] == ' ' || (str[i] >= 9 && str[i] <= 13))
i++;
while(str[i] == '-' || str[i] == '+')
{
if (str[i] == '-')
sig = -1;
i++;
}
while (str[i] >= '0' && str[i] <= '9')
{
booba = booba * 10 + str[i] - '0';
i++;
}
return (booba);
}
void ft_putnbr(int n)
{
if (n == -2147483648)
write(1, "-2147483648", 11);
else if (n < 0)
{
write(1, "-", 1);
ft_putnbr(-n);
}
else if (n > 9)
{
ft_putnbr(n / 10);
ft_putnbr(n % 10);
}
else
{
n = n + '0';
write(1, &n, 1);
}
}
int is_prime(int num)
{
int i = 3;
if (num <= 1)
return (0);
if (num % 2 == 0 && num > 2)
return (0);
while (i < (num / 2))
{
if (num % i == 0)
return 0;
i += 2;
}
return 1;
}
int main(int argc, char *argv[])
{
int sum = 0;
int nb = ft_atoi(argv[1]);
if (argc == 2)
{
while (nb > 0)
if (is_prime(nb--))
sum += (nb + 1);
ft_putnbr(sum);
}
else
ft_putnbr(0);
write(1, "\n", 1);
return (0);
}
Son düzenleyen: Moderatör: