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

Ошибка pow:Overflow error - C++

Восстановить пароль Регистрация
 
weightless
0 / 0 / 0
Регистрация: 12.02.2013
Сообщений: 103
14.09.2013, 11:41     Ошибка pow:Overflow error #1
Ошибка pow:Overflow error, как ее исправить?
Заранее спасибо!

Задание:
Кликните здесь для просмотра всего текста
Разработать программу содержащую динамический массив (<vector>) и список (<list>).

Mассив должен содержать структуры следующего вида:
Координата X
Координата Y
Название Города

На основе данного массива составьте список пар городов согласно заданных условий.

Сохраните полученный список в текстовый файл.

Выберите в выпадающем списке номер варианта и, нажав на кнопку, получите файл с заданием.


Вот список городов с координатами:
Кликните здесь для просмотра всего текста
Расстояние меньше 3000 км
-5598 -6413 Нью-Йорк
5466 2359 Бангалор
8647 -1900 Милан
-2551 -2050 Рим
6436 -5991 Тегеран
1064 6306 Рио-де-Жанейро
-590 -9857 Калькутта
3262 5316 Барселона
6087 4705 Мехико
-4627 9747 Вена
-3146 -9728 Лима
-1901 -3764 Гётеборг
-1021 -1201 Лондон
6518 8304 Мумбаи
1603 6613 Вена
-4917 1337 Севилья
740 -583 Вроцлав
2624 7603 Рига
4281 -2711 Вильнюс
-2658 1242 Стамбул
-3008 -317 Бремен
1816 3269 Барселона
5514 -9574 Лодзь
-2001 6576 Богота
3362 2723 Сеул
-7782 928 Джакарта


Вот код программы:
Кликните здесь для просмотра всего текста
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
 #include <iostream.h>
 #include <vector>
 #include <algorithm>
 #include <list>
 #include <math.h>
 
class Tcity {
    public:
        float x,y;
        char name[30];
};
 
class TPair{
    public:
        Tcity city1;
        Tcity city2;
        float dist;
        };
 
 
using namespace std;
 
 
int main(int argc, char* argv[]) {
    system("chcp 1251");
    vector<Tcity> v;
    list<TPair> l;
    TPair pair;
    char buf[100];
 
    FILE *fp = fopen("C:\\1.txt","rt");
 
    fgets(buf,sizeof(buf),fp);
    cout <<buf<< endl;
    Tcity *city;
    while (fgets(buf,sizeof(buf),fp)) {
        city = new Tcity;
        sscanf(buf,"%d%d%s",&(city->x),&(city->y),city->name);
        v.push_back(*city);
    }
     cout << "Найдено городов:" << v.size()<<endl;
 
     for (unsigned int i = 0; i < v.size(); i++) {
        for (unsigned int j = i+1; j < v.size(); j++) {
            if (i<j) {
                float d=sqrt((pow((v[i].x-v[j].x),2))+(pow((v[i].y-v[j].y),2)));
                if (d<3000){
                    pair.city1=v[i];
                    pair.city2=v[j];
                    pair.dist=d;
                    l.push_back(pair);
 
               }
 
 
 
            }
 
        }
 
     }
    getchar();
 
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Algoritmer
 Аватар для Algoritmer
155 / 95 / 13
Регистрация: 07.03.2013
Сообщений: 477
Записей в блоге: 1
14.09.2013, 11:45     Ошибка pow:Overflow error #2
Где возникает ошибка, в какой строке?
weightless
0 / 0 / 0
Регистрация: 12.02.2013
Сообщений: 103
14.09.2013, 11:59  [ТС]     Ошибка pow:Overflow error #3
В 46 строке
zenw
154 / 110 / 3
Регистрация: 12.06.2013
Сообщений: 168
14.09.2013, 12:08     Ошибка pow:Overflow error #4
Цитата Сообщение от weightless Посмотреть сообщение
sscanf(buf,"%d%d%s",&(city->x),&(city->y),city->name);
Вот здесь вы указываете %d (то есть целое), хотя передаете указатели на float. Нужно %f. Нормальные компиляторы выдают предупрежедения о таком.
weightless
0 / 0 / 0
Регистрация: 12.02.2013
Сообщений: 103
14.09.2013, 12:15  [ТС]     Ошибка pow:Overflow error #5
Это я поменял в последний момент перед копированием, изначально х и у были целыми, только вот тогда компилятор сообщал мне ошибку еще до компиляции, а сейчас ошибка проявляется уже через командную строку
Yandex
Объявления
14.09.2013, 12:15     Ошибка pow:Overflow error
Ответ Создать тему
Опции темы

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