• B правой части каждого сообщения есть стрелки и . Не стесняйтесь оценивать ответы. Чтобы автору вопроса закрыть свой тикет, надо выбрать лучший ответ. Просто нажмите значок в правой части сообщения.

  • Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

Задачас Циклом На С:

  • Автор темы MonteCristo
  • Дата начала
M

MonteCristo

здравствуйте! вот программа на С:

C++:
/*условие задачи:Дано действительное число а(1<а<3).
Составить алгоритм, находящий среди чисел 1 , 1+1/2 , 1+1/2+1/3 , ... первое, большее а.*/
#include<stdio.h>
#include<math.h>
#include<locale.h>
void main()
{
setlocale(0, "russian");
double a, s;
int i;
i = 1;
printf("Введите число больше 1 и меньше 3\n");
scanf_s("%f", &a);
for (s = 0; s <= a; i++)
{
s = s + 1/i;
}
printf("%f\n", s);
}

Вопрос: почему не выполняется цикл?
 

Вложения

  • 2014_11_15_16_20_56_Скриншот_экрана.png
    2014_11_15_16_20_56_Скриншот_экрана.png
    6,7 КБ · Просмотры: 457
A

Astyxys

C++:
#include<stdio.h>
#include<math.h>
#include<locale.h>
int main()
{
setlocale(0, "russian");
float a, s;	
s = 0.0f;
printf("Введите число больше 1 и меньше 3\n");
scanf("%f", &a);
for (int i = 1; s < a; i++)
{
s += (float)1/i;
}
printf("%f\n", s);

return 0;
}
Ты сменил всю локаль. При вводе чисел с плавающей точкой(в настройках русской локали) тебе надо вводить не точку, а запятую.
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!