K&R exercise 2.10 - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Вообщем иногда бывает аварийный останов программы. Разницу входных данных не подметил.Почему? PS. ПОхоже при превышении 30 символов, но почему? Как сделать так, чтобы программа выводила результат после перехода на новцю строку, а не по EOF
#include <stdio.h>
void lower(char s[]); 
 
int main(void)
{
    int c, i = 0;
    char s[30];
    while ((c = getchar()) != EOF || i != 30)
    {
        s[i] = c;
        i++;
    }   
    lower(s);
    return 0;
}
 
void lower(char s[])
{
    int i;
    for (i = 0; s[i] != '\0'; ++i)
    {
        printf("%c ", s[i] >= 'A' && s[i] <= 'Z' ? s[i] = 'a' + s[i] - 'A' : s[i]);
    }
    
}
на один вопрос ответил ) while ((c = getchar()) != '\n')

Решение задачи: «K&R exercise 2.10»

textual
Листинг программы
i != 29

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 3.929 из 5