Beibarys

Конкретно, в каком месте у тебя проблема?

Покажи свой вариант кода. Тогда подумаем вместе.

нет не помогло. я понял что такое цикл. теперь хотел пробовать задачи делать. не получается.

Показывай что получается. Ты же пробовал эту задачу решить?
Только когда будешь постить, пожалуйста код оформляй в соответствии с правилами разметки.

Beibarys, давай мы тебе поможем с алгоритмом.

 1. Объявим переменные типа double a, b;
 2. Объявим счетчик типа int counter и присвоим ему значение 1;
 3. Сделаем ввод числа в переменную b.
 4. ЕСЛИ b > 0
        ПОКА b >= 0
           переменной a присваиваем значение переменной b;
           ЕСЛИ b < 0
               прервать цикл;
           ИНАЧЕ
               счетчик увеличиваем на единицу;
               переменной b присваиваем значение выражения a - 1/sqrt(счетчик);
 5. ИНАЧЕ ЕСЛИ b < 0
        вывести сообщение о том, что число меньше 0;
 6. ИНАЧЕ
        вывести сообщение о том, что число равно 0;
 7. конец программы.

Я думаю, алгоритм тебе поможет. Удачи.

Cranium, отладчик работает нормально ;)

PS:

после того как прерываем и выходим из цикла отображаем переменную b с отрицательным значением.

beginner, это разве цикл?

Да ты прав, это не цикл. Это — алгоритм всей твоей программы в которой используется и цикл while в том числе. И выглядит это вот так:

#include <iostream>
#include <cmath>

int main()
{
    using std::cout;
    using std::cin;
    using std::sqrt;

    double a, b;
    int counter = 1;

    cout << "Enter a number bigger than 0: ";

    cin >> b;

    if (b > 0){

        while(b >= 0){
            a = b;

            if (b < 0){
                break;
            }
            else{
                counter++;
                b = a - 1 / sqrt(counter);
            }
        }

        cout << "The first negative number is " << b << "\n";
    }
    else if (b < 0)
        cout << "Your number is less than 0.\n";
    else
        cout << "Your number is equal to 0.\n";

    return 0;
}

beginner, спасибо большое. хотел вчера написать по алгоритму. не там не понял ПОКА b<=0. оказывается отсюда начинается цикл.

beginner, а как сделать так чтобы цикл работал до первого отрицательного числа?

Цикл сейчас работает до первого отрицательного числа, прекращает цикл и выводит его на экран.

beginner, ну я понял. вот так надо сделать мне.

вот код.

#include <iostream>

include <cmath>

include <conio.h>

using namespace std;
int main(int argc, char** argv) {
float a,b;
cout <<«b=»;
cin>>b;
for (a=b;a<=b;a=a-(1/sqrt(a)))
{
a--;
cout << «a = » << a << endl;
}

getch();
return 0;

}

Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.

Ответить

Вы можете использовать разметку markdown для оформления комментариев и постов. Используйте функцию предпросмотра для проверки корректности разметки.

Пожалуйста, оформляйте исходный код в соответствии с правилами разметки. Для того, чтобы вставить код в комментарий, скопируйте его в текстовое поле ниже, после чего выделите то, что скопировали и нажмите кнопку «код» в панели инструментов. Иначе ваш код может принять нечитаемый вид.

Либо производите оформление кода вручную, следующим образом:

``` #include <iostream> using namespace std; int main() { // ... } ```

Предпросмотр сообщения

Ваше сообщение пусто.