Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
МаксимМВ
C/C++
90 / 90 / 18
Регистрация: 01.07.2010
Сообщений: 281
1

не работает частично

02.07.2010, 11:05. Просмотров 572. Ответов 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
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 , то выходит, всё работает. А дальше идёт выводить ли на экран или в файл. Здесь не работает, выводит и туда и сюда. Помогите, как сделать?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.07.2010, 11:05
Ответы с готовыми решениями:

Программа выполняется частично
Добрый вечер! Я написал код, всё правильно, работает если запускать через...

частично-рекурсивные функции
Помогите, пожалуйста, написать программу на с++, используя частично-рекурсивную...

Скопировать массив частично?
Скопировать одномерный массив типа double целиком можно c помощью функции...

Частично по теме, можеры перенесите куда нужно
Здравствуйте. Пишу давно на С/С++, пользуюсь GCC. И вот хотелось бы расширить...

Сортировка map по значению int в порядке убывания и частично по ключу char :)
Добрый день. Помогите, пожалуйста, отсортировать std::map &lt;char, int&gt; a. ...

10
kazak
3058 / 2379 / 255
Регистрация: 11.03.2009
Сообщений: 5,438
Завершенные тесты: 1
02.07.2010, 11:45 2
Цитата Сообщение от МаксимМВ Посмотреть сообщение
if (filesave=true)
=>
C++
1
if (filesave==true)
1
МаксимМВ
C/C++
90 / 90 / 18
Регистрация: 01.07.2010
Сообщений: 281
02.07.2010, 12:09  [ТС] 3
Ага, но это только одна ошибка, откомпилируйте, посмотрите. Из Ubuntu зашёл, вернусь в Windows эту исправлю. Программа фактически уже готова, оттаётся только исправить ошибки, и начну писать под Windows.
0
kazak
3058 / 2379 / 255
Регистрация: 11.03.2009
Сообщений: 5,438
Завершенные тесты: 1
02.07.2010, 12:24 4
47 строка аналогично
0
МаксимМВ
C/C++
90 / 90 / 18
Регистрация: 01.07.2010
Сообщений: 281
02.07.2010, 12:47  [ТС] 5
да сделаю я, только не в этом дело. Откомпилируй.
0
kazak
3058 / 2379 / 255
Регистрация: 11.03.2009
Сообщений: 5,438
Завершенные тесты: 1
02.07.2010, 12:48 6
Компилируется.
0
МаксимМВ
C/C++
90 / 90 / 18
Регистрация: 01.07.2010
Сообщений: 281
02.07.2010, 12:55  [ТС] 7
запусти и протестируй
0
kazak
3058 / 2379 / 255
Регистрация: 11.03.2009
Сообщений: 5,438
Завершенные тесты: 1
02.07.2010, 12:56 8
Лучше конкретно скажи, что тебя не устраивает.
0
МаксимМВ
C/C++
90 / 90 / 18
Регистрация: 01.07.2010
Сообщений: 281
02.07.2010, 13:01  [ТС] 9
Ну в общем запускаю. Пишу вычислить от 1 до 100000. На вывод в файл пишу y. Вывести на экран n, но числа выводит. А мне надо так чтобы не выводили только сохраняли в файл. Но у меня должна быть и функция вывода на экран.

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

Ещё проще - научите делать отладку
0
kazak
3058 / 2379 / 255
Регистрация: 11.03.2009
Сообщений: 5,438
Завершенные тесты: 1
02.07.2010, 13:09 10
40 строка if (tempc=='n') {ekrv==false;}
=>
if (tempc=='n') {ekrv=false;}
1
МаксимМВ
C/C++
90 / 90 / 18
Регистрация: 01.07.2010
Сообщений: 281
02.07.2010, 13:15  [ТС] 11
ура всё работает спасибо! Просто к Delphi привык. Но заодно и отлаживать научился.
0
02.07.2010, 13:15
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.07.2010, 13:15

Вывод фамилии, имени и отчества с помощью функции с явно заданными или частично пропущенными параметрами
1 Написать функцию с параметрами по умолчанию в соответствии с вариантом ,...

Рекуррентные и частично рекуррентные выражения в циклах
Рекурентні та частково рекурентні вирази у циклах Помогите сделать 11...

Touchscreen работает частично
ребята ВЫРУЧИТЕ что сделать ?куда бежать, писать, что качать (программу)? чтоб...


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

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

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