Почему компилятор ругается на то, что else относится к if? - C (СИ)
Формулировка задачи:
Kомпилятор ругается на то,что else относится к if
[Error] 'else' without a previous 'if'
Вот собственно код:
#include <stdio.h>
#include <string.h>
#define MAX 81
int main(void)
{
char arr[MAX];
int i,l,n=0;
gets(arr);
l=strlen(arr);
for (i=l;i>0;i--)
{
if (arr[i]!=' ')
n++;
for(i=n-1;i>0;i--)
printf("%c",arr[i]);
else
break;
}
return 0;
}
Сам понял,забыл скобки поставить
Решение задачи: «Почему компилятор ругается на то, что else относится к if?»
textual
Листинг программы
if (arr[i]!=' ') {
n++;
for(i=n-1;i>0;i--) printf("%c",arr[i]);
}
else
break;
Объяснение кода листинга программы
В представленном коде выполняется обработка массива символов. Вот список действий:
- Проверка условия: если символ в массиве
arr[i]не равен пробелу (` '), то выполняются следующие действия. - Увеличение значения переменной
nна единицу. Переменнаяnинициализирована нулём до начала цикла. - Выполнение цикла
for, который начинается сn-1и идёт до тех пор, пока значениеiбольше нуля. В каждой итерации цикла выводится символ из массиваarr[i]. - Если условие в начале цикла не выполнилось (то есть, первый символ массива
arrравен пробелу), то выполнение кода завершается.