Написал программу на c++, почему то не выполняется вторая часть программа. Помогите отладить ее пожалуйста.
Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.
Выражение
'0'<=a[i]<='9'будет всегда даватьtrue, поскольку сначала выполнится'0'<=a[i]и дастtrueилиfalse, а затем выполнитсяtreu<='9'илиfalse<='9'соответственно. Булево значение в контексте выражения будет приведено к типуchar: т.е. к'\1'или'\0', что всегда меньше'9'.Правильный оператор будет выглядеть так:
Выражение
k=j*100/s;не будет работать правильно, поскольку, учитывая контекст, деление целочисленное. Счётчики могут быть целочисленными, но вычисление и результат (проценты) должны быть с плавающей точкой: типаdoubleилиfloat. Т.е.Фигурные скобки во «второй части» программы не нужны. Переменная
sздесь тоже не нужна.Кстати, для этой программы массив тоже не нужен. Хватит простой переменной типа
charдля приёма символа из стандартного ввода.