Задать вопрос
@spezcial
Начинающий программист

Почему данный код не работает?

#include <unistd.h>
#include <stdio.h>
int		ft_atoi(char *str);

int		ft_atoi(char *str)
{
  int res, i, sign;
  
  i = 0;
  sign = 1;
  res = 0;

    if (str[0] == '-')
      {
	sign = -1;
	i++;
      }
    
    while (str[i] >= 48 && str[i] <= 57)

      {
	res = res*10 + (str[i] - '0');
      }

    
    return sign*res;
}

int		main(void)
{
  char str[] = "23";

  int rslt = ft_atoi(str);

  printf("%d", rslt);

  return (0);
}
  • Вопрос задан
  • 691 просмотр
Подписаться 1 Простой 1 комментарий
Решения вопроса 2
0xD34F
@0xD34F
Что-то не вижу, чтобы вы увеличивали значение i в цикле.
Ответ написан
Комментировать
@Lepeshka
В цикле не меняется переменая i
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Всё работает именно так, как вы написали в программе. Цикл никогда не заканчивается.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы