Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Jin200611
14 / 14 / 1
Регистрация: 09.01.2012
Сообщений: 253
1

Обеспечить контроль существования диапазона

16.11.2014, 19:29. Просмотров 200. Ответов 10
Метки нет (Все метки)

Здравствуйте всем. Не могу исправить ошибки. Изначально код был написан Visual C++, никаких ошибок не было, но преподаватель сказал нужно на С++ в консоли сделать, после переделки появились ошибки, которые самому исправить не получается. Прошу помощи форумчан.
Задание: Вводится диапазон, (например 5,1,10) где 1-ое число-начало диапазона, 2-ое число приращение, 3-е число конец диапазона. Обеспечить контроль существования диапазона.
На выходе диапазоны записывать в следующем виде:
range (<старт>, <приращение>, <финиш>)
Например:
5...10 на выходе range (5,1,10)
5...0 на выходе range (5,-1,0)
5,2...10 на выходе range (5,2,10)
5,-2...10 выдает ошибку «Неправильно задан диапазон».

Заранее всем спасибо.

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
#include <iostream.h>
#include <string.h>
#include <stdio.h>
int main()
{
    double xn = 0;
    double xk = 0;
    double hx = 1;
   m_Inp = " ";
    m_Out = " ";
    bool bInp = false;
   cout << "Vvedite diapazon ";
   cin >> m_Inp;
    strspn s = m_Inp;
    s.Replace("...", " ");
    if(sscanf(s, "%lf%lf", &xn, &xk) == 2)
    {
         if(xk < xn)
            hx *= -1;
         bInp = true;
    }
    else
    if(sscanf(s, "%lf,%lf%lf", &xn, &hx, &xk) == 3)
    {
        if
        (
            (xk < xn && hx < 0)||(xk > xn && hx > 0)
        )
            bInp = true;
    }
    if(bInp) m_Out.Format("(%lf, %lf, %lf)", xn, hx, xk);
    else m_Out = "Неправильно задан диапазон";
     cout << m_Out;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.11.2014, 19:29
Ответы с готовыми решениями:

Есть что то типа unique, но не для последовательно повторяющихся элементов из диапазона, а для всего диапазона?
list&lt;string&gt;a = { &quot;aa&quot;,&quot;bb&quot;,&quot;ccc&quot;, &quot;gg&quot;,&quot;eeee&quot; ,&quot;aa&quot; }; list...

Не получается исправить ошибку (Вводится диапазон, где 1-ое число-начало диапазона, 2-ое число приращени, 3-е число конец диапазона)
Здравствуйте. Не могу исправить ошибку. Задание: Вводится диапазон, (например...

Проверка существования логина
Помогите пожалуйста, нужно сделать проверку на логин, т.е. если при регистрации...

Проверка существования структуры
Гугл ничего не дал так, что думаю будет многим полезно. Язык си, как...

Проверка существования файла
Надо сбросить массив char в файл. Если файл уже существует - ждать, пока его не...

10
nmcf
6410 / 5672 / 2581
Регистрация: 14.04.2014
Сообщений: 23,998
16.11.2014, 19:38 2
27 строку смотри. Всё верно ведь: из 5 к 10 отрицательным шагом не придёшь.
1
Jin200611
14 / 14 / 1
Регистрация: 09.01.2012
Сообщений: 253
16.11.2014, 19:53  [ТС] 3
А как ошибки исправить? Вот что выдает:
Error: range.cpp(9,11):Undefined symbol 'm_Inp'
Error: range.cpp(10,9):Undefined symbol 'm_Out'
Error: range.cpp(14,10):Statement missing ;
Error: range.cpp(15,4):Undefined symbol 's'

Использую Borland C++ 5.02.
0
zss
Модератор
Эксперт С++
7404 / 6796 / 4299
Регистрация: 18.12.2011
Сообщений: 17,946
Завершенные тесты: 1
16.11.2014, 20:00 4
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
#include <string>
#include <iostream>
using namespace std;
int main()
{
    double xn,xk,hx = 1;
    bool bInp = false;
    cout << "Input xbegin step xend:";
    string s;
    getline(cin,s);
    if(sscanf(s.c_str(), "%lf%lf%lf", &xn, &xk, &hx) == 2)
    {
         if(xk < xn)
            hx *= -1;
         bInp = true;
    }
    else
    if(sscanf(s.c_str(), "%lf%lf%lf", &xn, &hx, &xk) == 3)
    {
        if
        (
            (xk < xn && hx < 0)||(xk > xn && hx > 0)
        )
            bInp = true;
    }
    if(bInp) 
      cout<<xn<<' '<<hx<<' '<<xk<<endl;
    else 
      cout << "Wrong range\n";
    system("pause");
    return 0;
}
1
Jin200611
14 / 14 / 1
Регистрация: 09.01.2012
Сообщений: 253
16.11.2014, 20:15  [ТС] 5
Выдавал 2 ошибки.
Дописал
C++
1
#include <stdio.h>
стал выдавать только:
Warn : STRING.h(549,3):Functions containing for are not expanded inline
Warn : STRING.h(557,3):Functions containing while are not expanded inline
Warn : STRING.h(563,3):Functions containing for are not expanded inline
Warn : STRING.h(575,3):Functions containing for are not expanded inline
Warn : string.cc(686,32):Comparing signed and unsigned values
Warn : string.cc(658,2):Cannot create pre-compiled header: code in header
Error: ran.cpp(11,19):Could not find a match for 'std::getline(istream_withassign,std::basic_string<char,std::string_char_traits<char>,std::allocator<char>>)'
Error: ran.cpp(12,15):Call to undefined function 'sscanf'
0
zss
Модератор
Эксперт С++
7404 / 6796 / 4299
Регистрация: 18.12.2011
Сообщений: 17,946
Завершенные тесты: 1
16.11.2014, 20:22 6
А зачем Вам вообще string?
Раз используем чаровские функции, то string лучше заменить.
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
#include <string.h>
#include <stdio.h>
int main()
{
    double xn,xk,hx = 1;
    bool bInp = false;
    puts("Input xbegin step xend:");
    char s[100];
    getline(s,100);
    if(sscanf(s, "%lf%lf%lf", &xn, &xk, &hx) == 2)
    {
         if(xk < xn)
            hx = -1;
         bInp = true;
    }
    else
    if(sscanf(s, "%lf%lf%lf", &xn, &hx, &xk) == 3)
    {
        if
        (
            (xk < xn && hx < 0)||(xk > xn && hx > 0)
        )
            bInp = true;
    }
    if(bInp) 
      printf("%lf %lf %lf\n",xn,hx,xk);
    else 
      puts("Wrong range\n");
    system("pause");
    return 0;
}
1
Jin200611
14 / 14 / 1
Регистрация: 09.01.2012
Сообщений: 253
16.11.2014, 21:36  [ТС] 7
Ругается на
C++
1
getline(s,100);
Error: ran.cpp(9,13):Call to undefined function 'getline'
Error: ran.cpp(29,12):Call to undefined function 'system'

Как это можно победить?
0
zss
Модератор
Эксперт С++
7404 / 6796 / 4299
Регистрация: 18.12.2011
Сообщений: 17,946
Завершенные тесты: 1
16.11.2014, 21:37 8
Пардон, забыл поправить
C++
1
gets(s);
и
C++
1
getchar();
А вообще-то стыдно не уметь исправлять такие опечатки.
1
Jin200611
14 / 14 / 1
Регистрация: 09.01.2012
Сообщений: 253
16.11.2014, 21:50  [ТС] 9
Спасибо. Я немного код поправил, чтобы не ругался на
C++
1
system("pause");
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
#include <stdio.h>
#include <conio.h>
int main()
{
    double xn,xk,hx = 1;
    bool bInp = false;
    puts("Input xbegin step xend:");
    char s[100];
    gets(s);
    if(sscanf(s, "%lf%lf%lf", &xn, &xk, &hx) == 2)
    {
         if(xk < xn)
            hx = -1;
         bInp = true;
    }
    else
    if(sscanf(s, "%lf%lf%lf", &xn, &hx, &xk) == 3)
    {
        if
        (
            (xk < xn && hx < 0)||(xk > xn && hx > 0)
        )
            bInp = true;
    }
    if(bInp) 
      printf("%lf %lf %lf\n",xn,hx,xk);
    else 
      puts("Wrong range\n");
      getch();
      return 0;
}
Только программа не правильно работает. Если ввести 5,1,10 и 5,-1,10 результат все равно будет один и тот же.
0
zss
Модератор
Эксперт С++
7404 / 6796 / 4299
Регистрация: 18.12.2011
Сообщений: 17,946
Завершенные тесты: 1
16.11.2014, 21:51 10
У меня ответ разный.
1
Jin200611
14 / 14 / 1
Регистрация: 09.01.2012
Сообщений: 253
16.11.2014, 21:55  [ТС] 11
Буду разбираться дальше. Спасибо большое.
0
16.11.2014, 21:55
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.11.2014, 21:55

Проверка существования файла
Всем привет! Как можно реализовать проверку существования файла (если файл не...

Проверка на существования файла
Можно ли проверять файл на существование таким образом: ifstream...

Проверка условия существования треугольника
нужно написать программу Даны 3 числа, определить могут ли эти числа являться...


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

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

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