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

Ошибка, связанная с массивами - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Работа с файлами. Язык С http://www.cyberforum.ru/cpp-beginners/thread49193.html
существует такой код int c; FILE *f=fopen("C:/test.txt", "r"); c=getc(f); char a;
C++ Расшифровать цикл Здравствуйте! Помогите,если кто может, понять вот этот кусок кода,что он делает,желательно чтоб было понятно. for(j = 0; j < 10; j++) if(sqrs ==i) break; из вот этого исходника: http://www.cyberforum.ru/cpp-beginners/thread49190.html
++N C++
в чем отличие ++а от а++?
Использование toupper() C++
Не знаю почему, но код не хочет работать, вроде уже всё прописал что нужно. Программа должна выдать на экран фразу: украина - лучшая страна в мире с большой буквы все символы. Во исходник простой программы: #include <iostream> #include <cctype> #include <cstring> using namespace std; int main()
C++ Перекодировка файла в C++ http://www.cyberforum.ru/cpp-beginners/thread49112.html
Работаю с С++ в юниксе. Компилятор - консольный gcc. Надо прочесть файлы в кодировках windows-1251, koi8-r или utf-8 и переделать в utf-8 или windows-1251, что бы вся дальнейшая работа была в одной кодировке. Подскажите, пожалуйста, какие функции есть в c++ для этого дела и где по ним почитать можно.
C++ Работа с классами плиз помогите решить нужно написать функции которыи будут выполнять сложение, вычитание, умножение и деление допустим d1 и d3 вот то чтоу меня получилось доделать #include "stdafx.h" #include <iostream> #include <windows.h> #include <string.h> using namespace std; подробнее

Показать сообщение отдельно
Lil Crazy
6 / 6 / 1
Регистрация: 23.03.2009
Сообщений: 198
03.09.2009, 19:44  [ТС]
Вот в итоге такой код:
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
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
#include <iostream>
#include <stdio.h>
#include <conio.h>
#include <math.h>
 
int **ReadMatrixFromFile(int &K, int &L); 
int **CreateMatrix(const int K, const int L); 
void FreeMatrix(int **X, const int L); 
void CountPositiveElementsIn(int **X, const int K, const int L, int **A);
void PrintMatrix(int **X, const int K, const int L);
void WriteArrayToFile(int **A, const int K, const int L);
 
void main()
{  
    int K,L;
    printf("This program write the number of positive elemnts every row in array.\n");
    int **X=ReadMatrixFromFile(K,L);
    int **A=CreateMatrix(K,1);
    printf("Initial matrix:\n");
    PrintMatrix(X,K,L);
    CountPositiveElementsIn(X,K,L,A);
    printf("Result array:\n");
    PrintMatrix(A,K,1);
    WriteArrayToFile(A,K,1);
    FreeMatrix(X,K);
    FreeMatrix(A,K);
    printf("The program work is completed. For exiting press Enter.\n");
    getch();
}
 
void CountPositiveElementsIn(int **X, const int K, const int L, int **A)
{
    int i,j;
    for (i=0;i<K;i++)
        for(j=0;j<L;j++)
            if (X[i][j]>0)
                A[i]++;
}
 
void PrintMatrix(int **X, const int K, const int L)
{
    int i,j;
    for (i=0;i<K;i++)
    {
        for (j=0;j<L;j++)
        {
            printf("%5i",X[i][j]);
        }
        printf("\n");
    }
}
 
void FreeMatrix(int **X, const int K)
{
    int i;
    for(i=0; i<K; i++)
    {
        delete[] X[i];
    }
    delete[] X;
}
 
int **CreateMatrix(const int K,const int L)
{
    int i;
    int ** X = new int*[K];
    for(i=0; i<K; i++)
    {
         X[i] = new int[L];
    }
    return X;
}
 
void CheckingDimensionOfMatrix(const int K, const int L)
{
    if ((K<1) || (L<1)) 
    {
        printf("Matrix has the wrong dimension, that is less than unity. For exiting press Enter.\n");
        getch();
        exit(1);
    }
}
 
int **ReadMatrixFromFile(int &K, int &L)
{
    FILE *InputFile;
    char PathIn[25];
    int i,j;
    printf("Enter a path for input file: ");
    scanf("%s",PathIn); 
    if ((InputFile=fopen(PathIn, "r")) == NULL )
    {
        perror(PathIn);
        exit;
    }
    fscanf(InputFile,"%d ",&K);
    fscanf(InputFile,"%d ",&L);
    CheckingDimensionOfMatrix(K,L);
    int ** X=CreateMatrix(K,L); 
    for (i=0;i<K;i++)
    {
         for (j=0;j<L;j++)
            fscanf (InputFile,"%d ",&X[i][j]);
    }
    fclose(InputFile); 
    return X;
}
 
void WriteArrayToFile(int **X, const int K, const int L)
{
    int i,j;
    FILE *OutputFile;
    char PathOut[25];
    printf("Enter a path for output result file: ");
    scanf("%s",PathOut);  
    OutputFile=fopen(PathOut,"w+");
    for (i=0;i<K;i++)
    {
        for (j=0;j<L;j++)
        {
            fprintf(OutputFile,"%4d",X[i][j]);
        }
        fprintf(OutputFile,"\n");
    }
    fclose(OutputFile); 
}
Не работает моя функция подсчёта CountPositiveElementsIn и неверно освобождается память Подскажите плиз
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru