Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
28 / 28 / 4
Регистрация: 23.02.2012
Сообщений: 104
1

Заполнение массива и его запись в файл - разобрать пример

06.03.2012, 22:09. Показов 1609. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени суток. Возникли проблемы с заполнением массива, и я не могу понять чем они вызваны.
Суть проста, Есть 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
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
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <iostream>
int n=20;
int m=120;
 
int main()
{
    double T[n][m],B[n][m],D[n][m];
    int i,j;
 
    for(i=1;i<=n;i++)
    {
        for(j=1;j<=m;j++)
        {
            T[i][j]=0;
            B[i][j]=0;
            D[i][j]=0;
        }
    }
    for(i=(n/2-2);i<=(n/2+2);i++)
    {
        for(j=(m/2-2);j<=(m/2+2);j++)
        {
            B[i][j]=1;
            D[i][j]=1;
            T[i][j]=1;
        }
    }
 
 
    FILE *fout;
        fout = fopen("e:\\cods\\test04\\output.txt","wt");
 
        if (fout != 0)
        {
 
 
            fprintf(fout, "\n");
            for(i=1;i<=n;i++)
            {
                fprintf(fout, "\n");
                for(j=1;j<=m;j++)
                    fprintf(fout, "% .2f", D[i][j]);
            }
            fprintf(fout, "\n" "\n");
            for(i=1;i<=n;i++)
            {
                fprintf(fout, "\n");
                for(j=1;j<=m;j++)
                    fprintf(fout, "% .2f", T[i][j]);
            }
        }
        else printf("ne mogu otkryt' fail ");
}
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.03.2012, 22:09
Ответы с готовыми решениями:

Разобрать пример объявления динамического массива
нашел такой пример объявления динамического массива ,но без комментариев не могу понять,как это...

Запись массива в файл и его чтение
Помогите, пожалуйста: надо записать в файл массив из, например, 10 элементов, вычисляющихся как...

Заполнение массива из файла - разобрать код
Есть код теста в оконном приложении VB Private Sub file() If RadioButton1.Checked =...

Запись массива структур в бинарный файл и считывание его
Есть такая структура: struct table { public string name; public string...

4
1 / 1 / 2
Регистрация: 27.09.2011
Сообщений: 6
06.03.2012, 23:18 2
У меня выдал файл заполненный двумя вполне одинаковыми массива. Изменил только int на const int.
0
28 / 28 / 4
Регистрация: 23.02.2012
Сообщений: 104
06.03.2012, 23:26  [ТС] 3
В последнее время, я стал подозревать что проблемы могут быть из-за компилятора, я использую MinGW. Поставил const int выполняется уже 5 минут...
0
54 / 58 / 39
Регистрация: 27.12.2011
Сообщений: 93
06.03.2012, 23:28 4
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

1) #include <iostream> -стандартная библиотке С++. Для С не нужна.
2) Индексация массивов начинается с 0, а не с 1
1-й элемент массива имеет индекс 0, максимальный n-1 или m-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
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int n=20;
int m=120;
 
int main()
{
    double T[n][m],B[n][m],D[n][m];
    int i,j;
 
    for(i=0;i<n;i++)
    {
        for(j=0;j<m;j++)
        {
            T[i][j]=0;
            B[i][j]=0;
            D[i][j]=0;
        }
    }
    for(i=(n/2-2);i<=(n/2+2);i++)
    {
        for(j=(m/2-2);j<=(m/2+2);j++)
        {
            B[i][j]=1;
            D[i][j]=1;
            T[i][j]=1;
        }
    }
 
 
    FILE *fout;
        fout = fopen("e:\\cods\\test04\\output.txt","wt");
 
        if (fout != 0)
        {
 
 
            fprintf(fout, "\n");
            for(i=0;i<n;i++)
            {
                fprintf(fout, "\n");
                for(j=0;j<m;j++)
                    fprintf(fout, "% .2f", D[i][j]);
            }
            fprintf(fout, "\n" "\n");
            for(i=0;i<n;i++)
            {
                fprintf(fout, "\n");
                for(j=0;j<m;j++)
                    fprintf(fout, "% .2f", T[i][j]);
            }
        }
        else printf("ne mogu otkryt' fail ");
}
Поэтому в циклах начинаем с i=0 и заканчиваем i<m, а не с i=1 и i<=m соответственно !
1
28 / 28 / 4
Регистрация: 23.02.2012
Сообщений: 104
06.03.2012, 23:33  [ТС] 5
Большое спасибо))
0
06.03.2012, 23:33
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.03.2012, 23:33
Помогаю со студенческими работами здесь

Чтение массива из файла, его преобразование и запись в другой файл
Всем привет. Есть вот такой код: #include &lt;iostream&gt; #include &lt;vector&gt; #include &lt;fstream&gt;...

Запись массива в файл и его чтение в Portable Microsoft Visual Basic 6.0 SP6
Добрый вечер! Нужно записать матрицу matrix(116,116) в файл и затем считать оттуда нажимая на...

Запись Двухмерного массива файл, так что бы потом его прочитать в массив строк
Здравствуйте Форум, Возникла проблема, которую я не могу решить. Суть в том что я читаю файл,...

Считать файл и разобрать его строки на подстроки
Нужно считать файл: 2015 04 17 08:57:21 ENTRADA 76500243N 2015 04 17 08:58:32 ENTRADA 88905424M...


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

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