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

не работает частично - C++

Восстановить пароль Регистрация
 
МаксимМВ
C/C++
90 / 90 / 5
Регистрация: 01.07.2010
Сообщений: 281
02.07.2010, 11:05     не работает частично #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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
#include "stdafx.h"
#include <iostream>
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
 
using namespace std;
 
int _tmain(int argc, _TCHAR* argv[])
{
    int n; // до какого числа
    int ot; // от какого числа
    int dmax; // сколько чисел нужно вычислить (для статуса вычисления)
    int dvm; // сколько точек выведено (для статуса вычисления)
    double temp; //временные величины
    double temp1;
    char tempc; //что ввёл пользователь в ответ на вопрос
    bool sost; // составное ли число
    bool ekrv; //выводить ли числа на экран
    bool filesave; //выводить ли числа в файл
    FILE *fp; // файл для вывода
    for (;;){
    cout<<"‚ўҐ¤ЁвҐ n, Ґб«Ё е®вЁвҐ ўл©вЁ, Ґб«Ё е®вЁвҐ ўлзЁб«Ёвм Їа®бвлҐ зЁб«*, ўўҐ¤ЁвҐ «оЎ®© ¤агЈ®© бЁ¬ў®«: "; //сообщение
    //tempc='';
    cin >> tempc;
    if (tempc=='n') {break;} // если ввели n выходим из цикла
    cout<<"‚лзЁб«Ёвм Їа®бвлҐ зЁб«* ®в ";
    cin >> ot; //от
    cout<<" ¤® ";
    cin >> n; //до
    filesave=true; //значение по умолчанию для сохранения файла
    cout<<"‘®¤Ґа¦Ё¬®Ґ бв*а®Ј® д*©«* Ўг¤Ґв ЇҐаҐ§*ЇЁб**®. ‚뢥бвЁ ў д*©«? n - *Ґв: ";
    //тут начало проблемы
    cin >> tempc;
    if (tempc=='n') {filesave=false;} //если n то не сохранять в файл (!не работает!)
    ekrv=true;
    cout<<"‚뢥бвЁ ** нЄа**? n - *Ґв: ";
    //
    cin >> tempc;
    if (tempc=='n') {ekrv==false;} // аналогично с выводом на экран
    // тут конец
    if (filesave==true) {
        // строки в файл
        fp=fopen("ok.txt","a");
        fprintf(fp,"%s","\n---новое вычисление---\n");
    }
    if (ekrv=false) {
        // если не выводит на экран, то выводим статус вычисления, по которому пользователь будет ориентироваться когда вычисление закончится
        cout<<".............................."<<endl<<".";
    }
    if (ot<3) { // небольшая подготовка, недостаток алгоритма
              ot=3;
              if (ekrv==true) {cout<<"2 ";}
              if (filesave==true) {fprintf(fp,"%i", 3);}
              };
    dvm=0;
    dmax=n-ot;
    for (int i=ot; i<n; i++){ //сами вычисления, здесь всё отлично
        sost=false;
        temp1=i;
        temp=sqrt(temp1);
        for (int d=2; d<temp; d++){
            if (i%d==0) {
                      sost=true;
                      break;
                      };            
        }
        // вывод или статуса вычисления или числа или в файл
        if (sost==false) {
            if (ekrv== true){cout<<i<<" ";}
            else {
                if (dvm<(i-ot)*30/dmax)
            {
                cout<<".";
                dvm++;
            }
            } 
            if  (filesave=true) {fprintf(fp,"%i",i);}
                        
                        }
    }
    cout<<endl;
    cout<<" ‚лзЁб«Ґ*ЁҐ ўлЇ®«*Ґ*®"<<endl;
    system("pause");
    }
 return 0;
}
Тут программа для вычисления простых чисел, пойдёт и для вычисления до миллионов, и поэтому всё вывести на экран не может. Задаёт несколько вопросов. Первый - выйти ли. Если ответят n , то выходит, всё работает. А дальше идёт выводить ли на экран или в файл. Здесь не работает, выводит и туда и сюда. Помогите, как сделать?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
kazak
 Аватар для kazak
3029 / 2350 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
02.07.2010, 11:45     не работает частично #2
Цитата Сообщение от МаксимМВ Посмотреть сообщение
if (filesave=true)
=>
C++
1
if (filesave==true)
МаксимМВ
C/C++
90 / 90 / 5
Регистрация: 01.07.2010
Сообщений: 281
02.07.2010, 12:09  [ТС]     не работает частично #3
Ага, но это только одна ошибка, откомпилируйте, посмотрите. Из Ubuntu зашёл, вернусь в Windows эту исправлю. Программа фактически уже готова, оттаётся только исправить ошибки, и начну писать под Windows.
kazak
 Аватар для kazak
3029 / 2350 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
02.07.2010, 12:24     не работает частично #4
47 строка аналогично
МаксимМВ
C/C++
90 / 90 / 5
Регистрация: 01.07.2010
Сообщений: 281
02.07.2010, 12:47  [ТС]     не работает частично #5
да сделаю я, только не в этом дело. Откомпилируй.
kazak
 Аватар для kazak
3029 / 2350 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
02.07.2010, 12:48     не работает частично #6
Компилируется.
МаксимМВ
C/C++
90 / 90 / 5
Регистрация: 01.07.2010
Сообщений: 281
02.07.2010, 12:55  [ТС]     не работает частично #7
запусти и протестируй
kazak
 Аватар для kazak
3029 / 2350 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
02.07.2010, 12:56     не работает частично #8
Лучше конкретно скажи, что тебя не устраивает.
МаксимМВ
C/C++
90 / 90 / 5
Регистрация: 01.07.2010
Сообщений: 281
02.07.2010, 13:01  [ТС]     не работает частично #9
Ну в общем запускаю. Пишу вычислить от 1 до 100000. На вывод в файл пишу y. Вывести на экран n, но числа выводит. А мне надо так чтобы не выводили только сохраняли в файл. Но у меня должна быть и функция вывода на экран.

А проще в строчках 25 и 26 если ввести n, то filesave присваивается false? И это значение будет сохраняться?

Ещё проще - научите делать отладку
kazak
 Аватар для kazak
3029 / 2350 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
02.07.2010, 13:09     не работает частично #10
40 строка if (tempc=='n') {ekrv==false;}
=>
if (tempc=='n') {ekrv=false;}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.07.2010, 13:15     не работает частично
Еще ссылки по теме:

C++ Вывод фамилии, имени и отчества с помощью функции с явно заданными или частично пропущенными параметрами
C++ Сортировка map по значению int в порядке убывания и частично по ключу char :)
Multimap STL - работает только запись в файл, поиск в файле не работает C++

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

Или воспользуйтесь поиском по форуму:
МаксимМВ
C/C++
90 / 90 / 5
Регистрация: 01.07.2010
Сообщений: 281
02.07.2010, 13:15  [ТС]     не работает частично #11
ура всё работает спасибо! Просто к Delphi привык. Но заодно и отлаживать научился.
Yandex
Объявления
02.07.2010, 13:15     не работает частично
Ответ Создать тему
Опции темы

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