Форум программистов, компьютерный форум 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++
Не знаю почему, но код не хочет работать, вроде уже всё прописал что нужно. Программа должна выдать на экран фразу: украина - лучшая страна в мире с большой буквы все символы. Во исходник простой...
C++ Перекодировка файла в C++ http://www.cyberforum.ru/cpp-beginners/thread49112.html
Работаю с С++ в юниксе. Компилятор - консольный gcc. Надо прочесть файлы в кодировках windows-1251, koi8-r или utf-8 и переделать в utf-8 или windows-1251, что бы вся дальнейшая работа была в одной...
C++ Работа с классами плиз помогите решить нужно написать функции которыи будут выполнять сложение, вычитание, умножение и деление допустим d1 и d3 вот то чтоу меня получилось доделать #include "stdafx.h" #include... подробнее

Показать сообщение отдельно
Lil Crazy
6 / 6 / 1
Регистрация: 23.03.2009
Сообщений: 198

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

02.09.2009, 22:26. Просмотров 873. Ответов 19
Метки (Все метки)

Вот такой код для такой задачи: записать в массиве М количество положительных элементов каждого столбца матрицы A(K,L).
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
127
128
129
130
131
132
#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(X,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,z;
    for (i=0;i<K;i++)
    {
        for(j=0;j<L;j++)
        {
            if (X[i][j]>0)
            {
                A[z]++;
            }
        }
    }
}
 
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 WriteMatrixToFile(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); 
}
Причём даже не знаю верно ли решение задачи...
А ошибки компилятор выдаёт такие:
Ошибка 12 error LNK2019: ссылка на неразрешенный внешний символ "void __cdecl WriteArrayToFile(int * *,int,int)" (?WriteArrayToFile@@YAXPAPAHHH@Z) в функции _main KKR.obj KKR
Ошибка 13 fatal error LNK1120: 1 неразрешенных внешних элементов F:\Документы\Политех\Программирование\Курсач\B KKR
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru