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

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

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

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

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

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

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

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

10
kazak
3057 / 2378 / 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
3057 / 2378 / 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
3057 / 2378 / 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
3057 / 2378 / 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
3057 / 2378 / 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
Привет! Вот еще темы с решениями:

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

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

Частично не работает сенсор
Доброго времени суток. Имеется телефон philips w8510. Перестала работать...

Файлы на MicroSD 8 Гб в телефоне частично теряются, частично превращаются в кракозябы
Здравствуйте. Записал через картридер на чистую SDHC карту 8 Гб файлы с...


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

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

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