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

Множественное срабатывание цикла - C++

Восстановить пароль Регистрация
 
BBoyXaker
10 / 10 / 0
Регистрация: 31.08.2013
Сообщений: 57
21.11.2014, 15:20     Множественное срабатывание цикла #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
#include <iostream>
#include <vector>
#include <string>
#include <fstream>
#include <cmath>
#include <sstream>
#include <cstdlib>
 
using namespace std;
 
int main()
{
    ifstream f1("in.txt",ifstream::in);
    ofstream f2("out.txt",ofstream::out);
    string *s = new string();
    istringstream *ss = new istringstream(*s);
    getline(f1,*s);
    int t;
    *ss >> t;
    delete ss;
    delete s;
    string a,b;
    vector<string> m(t);
    int x,y;
    for(int i = 0;i != t; ++i){
        getline(f1,m[i]);
        a = (m[i][0] + m[i][1]);
        b = (m[i][2] + m[i][3]);
        x = atoi(a.c_str());
        y = atoi(b.c_str());
        if(int(pow(x,2) + pow(y,2)) % 7 == 1){
            f2 << "YES" << endl;
        }else f2<< "NO" << endl;
    }
    f1.close();
    f2.close();
    return 0;
}
Помогите пожалуйста, я в С++ новичок. На Pascal'е давно решил более рациональным кодом, но кроме этого никакой другой не компилировался вообще. Кстати ещё есть одна проблема, if почему-то срабатывает не верно, и всё время выполняется else. Гляньте пожалуйста за переменными.
Спасибо
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
nmcf
4298 / 3719 / 1252
Регистрация: 14.04.2014
Сообщений: 14,542
21.11.2014, 15:29     Множественное срабатывание цикла #2
Как минимум так:
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
ifstream f1("in.txt");
    ofstream f2("out.txt");
 
    string s;
    istringstream ss;
    getline(f1, s);
 
    int t;
    ss >> t;
 
    string a,b;
    vector<string> m(t);
 
    int x,y;
 
    for(int i = 0;i != t; ++i){
        getline(f1,m[i]);
        a = (m[i][0] + m[i][1]);
        b = (m[i][2] + m[i][3]);
        x = atoi(a.c_str());
        y = atoi(b.c_str());
        if((x * x + y * y) % 7 == 1){
            f2 << "YES" << endl;
        }else f2<< "NO" << endl;
    }
    f1.close();
    f2.close();
    return 0;
А что твой цикл делает неясно. Что в файле? Какая задача решается?
BBoyXaker
10 / 10 / 0
Регистрация: 31.08.2013
Сообщений: 57
21.11.2014, 15:51  [ТС]     Множественное срабатывание цикла #3
В файле находидится целое число t
Далее t четырёх-значных чисел
Делим его на 2 двузначных, возводим их в квадрат, складываем и если остаток от деления на 7 равен 1 выводом Yes, иначе No.
Спасибо за ответ

Добавлено через 5 минут
вот пример файла:
3
2843
8243
0100
на что должно выйти:
YES
NO
YES

Добавлено через 2 минуты
Правда, цикл всё так же срабатывает неверно, наверное чтение проходит неверно

Добавлено через 2 минуты
Немного изменил ваш код
C++
1
2
3
string s;
    getline(f1, s);
    istringstream ss(s);
В итоги по циклу всё в порядке, только условие не выполняется
IrineK
Заблокирован
21.11.2014, 21:45     Множественное срабатывание цикла #4
Цитата Сообщение от BBoyXaker Посмотреть сообщение
Далее t четырёх-значных чисел
Делим его
Здесь у меня компилятор не пропускает.

Цитата Сообщение от BBoyXaker Посмотреть сообщение
на 2 двузначных
Каких? И откуда?
Yandex
Объявления
21.11.2014, 21:45     Множественное срабатывание цикла
Ответ Создать тему
Опции темы

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