Форум программистов, компьютерный форум CyberForum.ru

Не выполняет ветку if - C++

Восстановить пароль Регистрация
 
 
CovCek
 Аватар для CovCek
6 / 6 / 4
Регистрация: 23.05.2014
Сообщений: 184
06.07.2014, 21:15     Не выполняет ветку if #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
int main()
{
    setlocale(LC_ALL, "Russian");
 
    float x, E, U = x, Fa = sin(x), Fe = 1 + U; //U = x, Fa = sin(x), Fe = 1 + U
    int k = 2; char c;
    do {
        printf("Введите X:");
        scanf_s("%f", &x);
 
        printf("Введите погрешность E:");
        scanf_s("%f", &E);
 
        if (abs(x) < 1){ printf("Введено неверное значение x.\n"); }
        if (E > 1 || E < 0) { printf("Введено неверное значение E.\n"); }
    }
    while (abs(x) < 1 || E > 1 || E < 0);
 
    printf("Хотите лично ввести переменную K? (Y/N)");
    scanf("%c", &c);
    //if (c=Y || c=y ) { // как здесь правильно сделать что бы при ответе  Y или y, проверял что дальше делать
       // тут будет другой код который нужно выполнить.
 
} 
 
    //else {
    
    printf("k=%-5d Fa=%-10.5f Fe=%-10.5f  E=%-10.5f \n", k, Fa, Fe, abs(Fa - Fe));
    k = 3;
 
    while (fabs(Fa - Fe) <= E);
    {
        U = U*(-1)*((x*x) / ((2 * k - 1)*(2 * k - 2)));
        Fe = Fe + U;
        printf("k=%-5d Fa=%-10.5f Fe=%-10.5f E=%-10.5f\n", k, Fa, Fe, abs(Fa - Fe));
        k++;
    }
}
    system("pause");
    return 0;
}

Как, в строчках 21 и 22, сделать правильную проверку ответа?
Лучшие ответы (1)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Supernatural
285 / 141 / 28
Регистрация: 22.11.2010
Сообщений: 1,441
06.07.2014, 23:37     Не выполняет ветку if #21
CovCek, при подключенной stdio.h ругаться не должен на scanf
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
CovCek
 Аватар для CovCek
6 / 6 / 4
Регистрация: 23.05.2014
Сообщений: 184
06.07.2014, 23:41  [ТС]     Не выполняет ветку if #22
Цитата Сообщение от Supernatural Посмотреть сообщение
CovCek, при подключенной stdio.h ругаться не должен на scanf
А почему-то ругается.
Вот такая у меня шапка:
C++
1
2
3
4
5
#include <iostream>
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
using namespace std;
Supernatural
285 / 141 / 28
Регистрация: 22.11.2010
Сообщений: 1,441
06.07.2014, 23:44     Не выполняет ветку if #23
а что за ошибка? интересно поглядеть
CovCek
 Аватар для CovCek
6 / 6 / 4
Регистрация: 23.05.2014
Сообщений: 184
06.07.2014, 23:45  [ТС]     Не выполняет ветку if #24
Цитата Сообщение от Supernatural Посмотреть сообщение
а что за ошибка? интересно поглядеть
Ошибка 1 error C4996: 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. c:\users\user1\documents\visual studio 2013\projects\task 2.2.1\task 2.2.1\task 2.2.1.cpp 29

VS 2013 Pro
Supernatural
285 / 141 / 28
Регистрация: 22.11.2010
Сообщений: 1,441
06.07.2014, 23:50     Не выполняет ветку if #25
Цитата Сообщение от CovCek Посмотреть сообщение
VS 2013 Pro
ясно ))))
ну тогда уже лучше через cin работать, если vs его принимает как безопасную функцию
CovCek
 Аватар для CovCek
6 / 6 / 4
Регистрация: 23.05.2014
Сообщений: 184
06.07.2014, 23:52  [ТС]     Не выполняет ветку if #26
Всем спасибо и удачного утра/дня/вечера/ночи
Roodey
4 / 4 / 1
Регистрация: 23.05.2013
Сообщений: 36
07.07.2014, 09:06     Не выполняет ветку if #27
покажите ваш текущий код
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.07.2014, 22:57     Не выполняет ветку if
Еще ссылки по теме:

C++ Программа не выполняет вычисления
C++ Не выполняет ввод
Нужно в пункт просмотра добавить еще одну "ветку" которая будет отвечать за сортировку C++

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

Или воспользуйтесь поиском по форуму:
CovCek
 Аватар для CovCek
6 / 6 / 4
Регистрация: 23.05.2014
Сообщений: 184
07.07.2014, 22:57  [ТС]     Не выполняет ветку if #28
Цитата Сообщение от Roodey Посмотреть сообщение
покажите ваш текущий код
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
70
71
72
73
#include <iostream>
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
using namespace std;
 
int main()
{
    setlocale(LC_ALL, "Russian");
 
    float x, E, U, Fa, Fe; //U = x, Fa = sin(x), Fe = 1 + U
    int i = 2, k; char c;
    do {
        printf("Введите X:");
        scanf_s("%f", &x);
 
        printf("Введите погрешность E:");
        scanf_s("%f", &E);
 
        if (abs(x) < 1){ printf("Введено неверное значение x.\n"); }
        if (E > 1 || E < 0) { printf("Введено неверное значение E.\n"); }
    }
    while (abs(x) < 1 || E > 1 || E < 0);
 
    U = x, Fa = sin(x), Fe = 1 + U;
 
    printf("Хотите лично ввести переменную K? (Y/N)\n");
    std::cin >> c;
    //scanf("%s", &c); //почему не работают
    //c = getchar();  
 
    if (c == 'Y' || c == 'y') {
 
        do{
            printf("Введите переменную K:\n");
            scanf_s("%d", &k);
            if (k <= 3) { printf("Неверное значение K.\n"); }
        } 
        while (k <= 3);     
        printf("i=%-5d Fa=%-10.5f Fe=%-10.5f  E=%-10.5f \n", i, Fa, Fe, abs(Fa - Fe)); 
        i = 3;
        do
        {
            U = U*(-1)*((x*x) / ((2 * i - 1)*(2 * i - 2)));
            Fe = Fe + U;
            printf("i=%-5d Fa=%-10.5f Fe=%-10.5f E=%-10.5f\n", i, Fa, Fe, abs(Fa - Fe)); 
            i++;
        } while (i <= k);
 
        /*while (i != k);
        {
            U = U*(-1)*((x*x) / ((2 * k - 1)*(2 * k - 2)));
            Fe = Fe + U;
            printf("k=%-5d Fa=%-10.5f Fe=%-10.5f E=%-10.5f\n", k, Fa, Fe, abs(Fa - Fe));
            i++;
        }*/
    }
    else
    {
        printf("i=%-5d Fa=%-10.5f Fe=%-10.5f  E=%-10.5f \n", i, Fa, Fe, abs(Fa - Fe));
        i = 3;
 
        while (fabs(Fa - Fe) <= E);
        {
            U = U*(-1)*((x*x) / ((2 * i - 1)*(2 * i - 2)));
            Fe = Fe + U;
            printf("i=%-5d Fa=%-10.5f Fe=%-10.5f E=%-10.5f\n", i, Fa, Fe, abs(Fa - Fe));
            i++;
        }
    }
    system("pause");
    return 0;
}
Yandex
Объявления
07.07.2014, 22:57     Не выполняет ветку if
Ответ Создать тему
Опции темы

Текущее время: 06:38. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru