Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
0 / 0 / 1
Регистрация: 04.12.2014
Сообщений: 128
1

Почему в коде While и DoWhile не считают с нулевого элемента?

21.07.2018, 16:12. Показов 809. Ответов 2
Метки нет (Все метки)

Цикл FOR работает нормально а вот While и DoWhile выводят значения не с начала а с 1 элемента (который по факту второй.
Фото прикрепил
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
#include <iostream>
#include <iomanip>
#include <math.h>
using namespace std;
 
int main()
{
    double a=2, y, x, x0=2, xkon=3, n=12, h;
    int op;
    cout << "Enter three numbers" << endl;
    cout << "Vvedite A a=3" << endl; 
    cout << "Vvedite X0 x0=2" << endl;
    cout << "Vvedite XKonechnoe xkon = 3" << endl;
    cout << "Vvedite N  n=12" << endl; 
    h = ((xkon - x0) / n);
 
    cout << "Choose the method (FOR = 1 or While = 2 or Do+While = 3)" << endl;
    cin >> op;
    switch (op)
    {
    case 1:
        {
        cout << "The first method was chosen (FOR)" << endl;
        cout << "-----------------------------------------\n";
        cout << "|" << setw(10) << "X" << setw(10) << "|" << setw(10) << "Y" << setw(10) << "|" << endl;
        cout << "-----------------------------------------\n";
        for (x = x0; x <= xkon; x += h)
        {
            y = cos(sqrt(x) + sqrt(a) + 1) / (sqrt(a*x));
            cout << "|" << setw(10) << x << setw(10) << "|" << setw(10) << y << setw(10) << "|" << endl;
        } // - Zakrivaet FOR!!!!
        break;
        } // - Zarkivaet Case 1
    case 2:
        {
        int i = ((x = x0) && (x <= xkon) && (x += h));
        cout << "The second method was chosen (WHILE)" << endl;
        cout << "-----------------------------------------\n";
        cout << "|" << setw(10) << "X" << setw(10) << "|" << setw(10) << "Y" << setw(10) << "|" << endl;
        cout << "-----------------------------------------\n";
        while (i<=12)
        {
            y = cos(sqrt(x) + sqrt(a) + 1) / (sqrt(a*x));
            cout << "|" << setw(10) << x << setw(10) << "|" << setw(10) << y << setw(10) << "|" << endl;
            x += h;
            ++i;
            } // - Закрывает While
                break;
        } // - Zakrivaet Case 2
    case 3:
        {
        int i = ((x = x0) && (x <= xkon) && (x += h));
        cout << "-----------------------------------------\n";
        cout << "|" << setw(10) << "X" << setw(10) << "|" << setw(10) << "Y" << setw(10) << "|" << endl;
        cout << "-----------------------------------------\n";
        cout << "The third method was chosen (DO+WHILE)" << endl;
        do
        {
            y = cos(sqrt(x) + sqrt(a) + 1) / (sqrt(a*x));
            cout << "|" << setw(10) << x << setw(10) << "|" << setw(10) << y << setw(10) << "|" << endl;
            x += h;
            ++i;
        } while (i<=12); // - Zarrivaet DoWhile
        break;
        } // - Zakrivaet Case 3
    } // - Zakrivaet Switch
    system("pause");
    return 0;
}
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Миниатюры
Почему в коде While и DoWhile не считают с нулевого элемента?   Почему в коде While и DoWhile не считают с нулевого элемента?  
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.07.2018, 16:12
Ответы с готовыми решениями:

Количество элементов в массиве до первого нулевого элемента (Ассемблерная вставка в коде pascal)
Задание такое: Написать программу, вычисляющую количество элементов в массиве до первого нулевого...

Найти произведение всех элементов массива, начиная с нулевого. Если нулевого элемента нет - вывести (-1)
В одномерном массиве, состоящем из n элементов найти: произведение всех элементов, начиная с...

Почему Delphi считают умершим?!
Ну почему?Что все говорят,что один С++ хороший язык.Это уже бесит.Конечно синтаксис это дело...

Почему все считают, что язык С - низкоуровневый?
Я просто в недоумении. Ходят слухи, что язык С - низкоуровневый, а язык С++ - перетерпел...

2
Нарушитель
1486 / 1288 / 485
Регистрация: 16.08.2014
Сообщений: 5,415
Записей в блоге: 1
21.07.2018, 17:09 2
Лучший ответ Сообщение было отмечено Stig30rus как решение

Решение

Stig30rus, потому что эта штука ((x = x0) && (x <= xkon) && (x += h)); дает единицу, ее ты писал?

Добавлено через 59 секунд
ее результат булево значение и будет либо 1 либо 0

Добавлено через 2 минуты
по моему ты че то напутал с i

Добавлено через 4 минуты
Stig30rus, вот второй кейс поправил с третьем разберешься?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
case 2:
        {
        cout << "The second method was chosen (WHILE)" << endl;
        cout << "-----------------------------------------\n";
        cout << "|" << setw(10) << "X" << setw(10) << "|" << setw(10) << "Y" << setw(10) << "|" << endl;
        cout << "-----------------------------------------\n";
        x = x0;
        while (x <= xkon)
        {
            y = cos(sqrt(x) + sqrt(a) + 1) / (sqrt(a*x));
            cout << "|" << setw(10) << x << setw(10) << "|" << setw(10) << y << setw(10) << "|" << endl;
            x += h;
            } // - Закрывает While
                break;
        } // - Zakrivaet Case 2
1
3414 / 2773 / 751
Регистрация: 25.03.2012
Сообщений: 10,083
Записей в блоге: 1
21.07.2018, 21:14 3
Цитата Сообщение от Stig30rus Посмотреть сообщение
int i = ((x = x0) && (x <= xkon) && (x += h));
в чём вообще смысл этой строчки? Автор, писавший её, думал не головой, а копипастом.
что она должна делать? Вы понимаете вообще, что содержимое for это не выражение для одновременного вычисления и ещё какой-то логической &&-проверки?
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.07.2018, 21:14

Почему все считают, что qsort - НЕ из STL?
Странно, что qsort не относят к STL!? Ведь qsort определена в библиотеке cstdlib: C Standard...

Почему если ты программист, все считают, что тебе интересно только о компьютере разговаривать?
Вот, я сталкиваюсь с такой ситуацией. Большинство, узнав что я программист начинают рассказывать...

Почему некоторые участники форума считают, что усложнять код - показать высокого интеллекта?
Почему некоторые участники форума считают, что усложнять код - показать высокого интеллекта? Я...

Определить первое вхождение first нулевого элемента в массиве mas1 в диапазоне от 3-го до 7-го элемента
Сформировать два массива mas1 и mas2, каждый состоящий из 9 элементов, значения которых находятся в...

Вывести номер последнего нулевого элемента массива или 0, если такого элемента нет
Одномерные массивы. Часть 1 1) номер последнего нулевого элемента или 0, если такого элемента...

Поиск нулевого элемента массива
const n= 3;m= 3; {оголошення розмірів масиву} type mas=array of integer; {оголошення типу...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.