1 / 1 / 0
Регистрация: 17.08.2013
Сообщений: 91
1

Не могу понять почему в файл OUTPUT.TXT ничего не записывается

28.08.2013, 17:08. Показов 2432. Ответов 21
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
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
#include <iostream>
#include <fstream>
using namespace std;
 
int main()
{
    
    int n,i;
    ifstream in("INPUT.TXT");
    in >> n;
    int a=0, b=0;
    int s;
    ofstream out("OUTPUT.TXT");
    for(i=0; i<n; i++){
        s=a+(a+1);
    b=b+1;
    a=a+1;
        if(n==s){
            out << "1" << '\n' << b;
        }
        else {
            if(i==n)
                out << '0';
            continue;
        }
    }
    return 0;
    }
Не могу понять почему в файл OUTPUT.TXT ничего не записывается, а по идее должно...
Т.е. в файле INPUT.TXT лежит число, и надо определить равно ли оно сумме двух предшествующих чисел, если да
то вывести 1 и порядковый номер числа в данной последовательности, если нет то вывести 0.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.08.2013, 17:08
Ответы с готовыми решениями:

Почему в файл ничего не записывается?
добрый час ! подскажите, почему данный код ничего не записывает в файл ? $a=0; $fl =...

Не могу понять, что записывается в файл
Кто может, объясните эту функцию: def returnResult(status, description): date =...

Xcopy ничего не копирует, и не могу понять почему!
Почему команда xcopy &quot;D:\Papka1&quot; &quot;D:\Papka2\&quot; /e /f /h /r /l ничего не копирует, а только выводит...

Ребята .не могу понять почему не переносит один массив в другой ? ничего не выводит.С
/*Используя два указателя на массив целых чисел, скопировать один массив в другой. Использовать в...

21
5498 / 4893 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
28.08.2013, 17:32 2
Файл "INPUT.TXT" существует? И что, например, в нём?

Добавлено через 13 минут
Если так:
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
#include <iostream>
#include <fstream>
using namespace std;
 
int main()
{
    
    int n,i;
    ifstream in("INPUT.TXT");
    in >> n;
    int a=0, b=0;
    int s;
    ofstream out("OUTPUT.TXT");
    for(i = 0; i < n; i++)
    {
        s = a + (a + 1);
        b = b + 1;
        a = a + 1;
        if(n == s)
        {
            out << "1" << '\n' << b;
            break;
        }
        else 
        {
            if(i == (n - 1))
            {
                out << '0';
                break;
            }
        }
    }
    
    system("pause");
    return 0;
}
0
1 / 1 / 0
Регистрация: 17.08.2013
Сообщений: 91
28.08.2013, 17:32  [ТС] 3
существует, 8
0
Модератор
Эксперт по электронике
8920 / 6688 / 919
Регистрация: 14.02.2011
Сообщений: 23,560
28.08.2013, 17:51 4
интересная конструкция
Цитата Сообщение от Toshik_ Посмотреть сообщение
C++
1
2
3
4
5
else {
 if(i==n)
  out << '0';
  continue;
   }
зачем здесь continue и без него идем на следующюю итерацию
далее
Цитата Сообщение от Toshik_ Посмотреть сообщение
C++
1
2
3
4
5
6
7
for(i=0; i<n; i++){
...............
if(i==n)
 out << '0';
 continue;
}
}
в цикле никогда i не будет равна n из за условия в заголовке цикла i<n значит 0 не записывается в файл
далее

Цитата Сообщение от alsav22 Посмотреть сообщение
C++
1
2
3
s = a + (a + 1);
 b = b + 1;
 a = a + 1;
первая итерация
s = a + (a + 1);=0+1=1
b = b + 1; 0+1=1;
a = a + 1; 0+1=1
вторая
s = a + (a + 1);=1+2=3
b = b + 1; 1+1=2;
a = a + 1; 1+1=2
третья
s = a + (a + 1);=2+3=5
b = b + 1; 2+1=3;
a = a + 1; 2+1=3
четвертая
s = a + (a + 1);=3+4=7
b = b + 1; 3+1=4;
a = a + 1; 3+1=4
пятая
s = a + (a + 1);=4+5=9
b = b + 1; 4+1=5;
a = a + 1; 4+1=5

следовательно и эта ветка
Цитата Сообщение от Toshik_ Посмотреть сообщение
C++
1
2
if(n==s){
out << "1" << '\n' << b;
никогда не запишет в файл при n=8

легко увидеть что
s = a + (a + 1); тоже что и s = i+ (i + 1);
s=2*i+1;
число нечетное
значит для записи в файл n должен быть нечетным
0
2666 / 2241 / 240
Регистрация: 03.07.2012
Сообщений: 8,149
Записей в блоге: 1
28.08.2013, 17:55 5
Похоже на задачи с тестовых сайтов, а по условию прохоже на проверку, входит ли число в ряд фибоначчи (кстати, 8-ка входит). Но условие изложено столь невразумительно, что точно сказать нельзя.
0
Модератор
Эксперт по электронике
8920 / 6688 / 919
Регистрация: 14.02.2011
Сообщений: 23,560
28.08.2013, 18:10 6
Цитата Сообщение от zer0mail Посмотреть сообщение
по условию прохоже на проверку, входит ли число в ряд фибоначчи (кстати, 8-ка входит).
ну если смотреть на
Цитата Сообщение от Toshik_ Посмотреть сообщение
s=a+(a+1);
да похоже на Фибоначчи
но только тогда следующее число ни как не
Цитата Сообщение от Toshik_ Посмотреть сообщение
a=a+1;
а так же
a=a+(a+1);
или попроще
то
a=2*a+1;

Добавлено через 3 минуты
Цитата Сообщение от ValeryS Посмотреть сообщение
или попроще
то
a=2*a+1;
наврал я не все так просто
0
5498 / 4893 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
28.08.2013, 18:14 7
Цитата Сообщение от ValeryS Посмотреть сообщение
никогда не запишет в файл при n=8
При 8 разве в файл должна записаться 1?
Цитата Сообщение от Toshik_ Посмотреть сообщение
надо определить равно ли оно сумме двух предшествующих чисел,
Если я правильно понял, то 6 + 7 != 8, записываем 0. Но логику расчётов я вообще не смотрел, сделал, чтобы запись была в двух случаях. С логикой пусть ТС сам разбирается. Вопрос был про запись в файл.
0
Модератор
Эксперт по электронике
8920 / 6688 / 919
Регистрация: 14.02.2011
Сообщений: 23,560
28.08.2013, 18:19 8
Цитата Сообщение от alsav22 Посмотреть сообщение
Если я правильно понял, то 6 + 7 != 8, записываем 0.
нет не записываем
из-за
Цитата Сообщение от Toshik_ Посмотреть сообщение
C++
1
2
if(i==n)
 out << '0';
а i не равна n, по крайней мере в цикле из-за
Цитата Сообщение от Toshik_ Посмотреть сообщение
C++
1
for(i=0; i<n; i++)
если записать хотя бы вот так
C++
1
for(i=0; i<=n; i++)
то запишется
0
5498 / 4893 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
28.08.2013, 18:24 9
Цитата Сообщение от ValeryS Посмотреть сообщение
нет не записываем
из-за
Вы мой код смотрели?
Цитата Сообщение от alsav22 Посмотреть сообщение
else
{
if(i == (n - 1))
{
out << '0';
break;
}
}
0
Модератор
Эксперт по электронике
8920 / 6688 / 919
Регистрация: 14.02.2011
Сообщений: 23,560
28.08.2013, 18:30 10
Цитата Сообщение от alsav22 Посмотреть сообщение
Вы мой код смотрели?
нет
я оригинальный смотрел и все ошибки относятся к нему
мы же ошибки ТС разбираем

Добавлено через 2 минуты
кстати
Цитата Сообщение от alsav22 Посмотреть сообщение
C++
1
2
3
4
5
if(i == (n - 1))
 {
 out << '0';
 break;
 }
break то зачем?
i == (n - 1) итак последняя итерация без бряка из цикла выйдем
0
5498 / 4893 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
28.08.2013, 18:33 11
Цитата Сообщение от ValeryS Посмотреть сообщение
break то зачем?
i == (n - 1) итак последняя итерация
Зачем лишние действия, если все равно выход?
0
2666 / 2241 / 240
Регистрация: 03.07.2012
Сообщений: 8,149
Записей в блоге: 1
28.08.2013, 18:36 12
Зачем смотреть код ТС - он все равно "кривой" ТС уже новую тему создал для этой задачи. Похоже, хочет "порешать" задачи через форум (как будто это поможет стать программистом)
"Разруха начинается головах" (с) Преображенский. Невозможно с расплывчатыми невнятными мыслями написать ясную, правильно работающую программу.
0
Модератор
Эксперт по электронике
8920 / 6688 / 919
Регистрация: 14.02.2011
Сообщений: 23,560
28.08.2013, 18:47 13
Цитата Сообщение от alsav22 Посмотреть сообщение
Зачем лишние действия, если все равно выход?
это ты меня спрашиваешь ?
тот же вопрос я и задал
Цитата Сообщение от zer0mail Посмотреть сообщение
Зачем смотреть код ТС - он все равно "кривой"
ну-к я думал указать человеку на ошибки
даже целую портянку расписал
Цитата Сообщение от zer0mail Посмотреть сообщение
ТС уже новую тему создал для этой задачи.
да уже вижу
и самоустроняюсь
но не для вас alsav22 и zer0mail
0
5498 / 4893 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
28.08.2013, 18:51 14
ValeryS, вы, наверное, не поняли про лишние действия. Если break, то сразу выход. Если без break, то обращение к параметрам цилка, увеличение i, сравнение с n, и только потом выход. Я про эти лишние действия спросил. Зачем они?
0
Модератор
Эксперт по электронике
8920 / 6688 / 919
Регистрация: 14.02.2011
Сообщений: 23,560
28.08.2013, 18:58 15
Цитата Сообщение от alsav22 Посмотреть сообщение
Если без break, то обращение к параметрам цилка, увеличение i, сравнение с n, и только потом выход.
ну да, но это копейки а логика уже не столь стройная
этак можно в любом цикле писать
C++
1
2
3
4
5
6
for(int i=0; i<n; i++)
{
 ...............................
if(i==(n-1)
  break;
}
0
5498 / 4893 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
28.08.2013, 19:02 16

Не по теме:

Если копейки, зачем тогда про break писать? break - это рубли?



Добавлено через 3 минуты

Не по теме:

Причём здесь любой цикл? Есть конкретный. Цель в цикле достигнута, продолжать цикл нет смысла, делается выход. Всё логично. В других циклах всё может быть по другому. О чём разговор? Может закончим?

0
0 / 0 / 0
Регистрация: 28.08.2013
Сообщений: 10
28.08.2013, 19:07 17
Возможно в файл ничего не записывается, так как этот файл не закрывается(насколько я понял). После записи в файл нужно его обязательно корректно закрыть.
0
5498 / 4893 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
28.08.2013, 19:11 18

Не по теме:

Хотя, я сделал бы тут по другому. В данном случае, я просто код ТС подправил, а не свой написал.



Добавлено через 1 минуту
asdf1100, тут уже всё выяснили об этом. Запишется, когда программа закроется, но, согласен, лучше самому (для порядка).

Добавлено через 1 минуту

Не по теме:

Что-то форум глючит, цитирование не делается. Только у меня?

0
Модератор
Эксперт по электронике
8920 / 6688 / 919
Регистрация: 14.02.2011
Сообщений: 23,560
28.08.2013, 19:16 19
и потом этим бряком ьы можешь не убыстрить а замедлить работу программы
во первых ослепляешь оптимизатор
а во вторых сбиваешь предсказатель процессора
вот он сделал сто итераций и понимает что условие не выполняется
на сто первый думает что не выполнится загоняет в кэш последовательность инструкций и... не угадал
из кэша все выгружаем и загоняем заново
в общем оптимизация циклов задача нетривиальная
и каждый раз нужен новый подход
0
5498 / 4893 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
28.08.2013, 19:19 20

Не по теме:

ValeryS, я это для кого пишу?

Хотя, я сделал бы тут по другому. В данном случае, я просто код ТС подправил, а не свой написал.



Добавлено через 1 минуту

Не по теме:

Лучше на это ответьте:

Что-то форум глючит, цитирование не делается. Только у меня?

0
28.08.2013, 19:19
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.08.2013, 19:19
Помогаю со студенческими работами здесь

Не могу понять почему у меня не кешируется страница ? Пробовал все варианты, ничего не вышло
header(&quot;Cache-Control: public&quot;); header(&quot;Expires: &quot; . date(&quot;r&quot;, time() + 3600)); echo...

Напишите универсальное начало программы, которое вызывает файл input.txt и выводит в файл output.txt
Проверим вашу сообразительность господа) Напишите универсальное начала проги которое вызывает файл...

Работа с файлами. Вывести на экран файл Input.txt задом наперед и записать результат в файл Output.txt
1. Работа с файлами Вывести на экран файл Input.txt задом-наперед и записать результат в файл...

Файл: Не могу понять, почему данные не записываются в файл, он остается пустым.
Здравствуйте , помогите пожалуйста , с записью данных в файл. #include &quot;stdafx.h&quot;...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru