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

При компиляции выдает ошибку E2314 Call of nonfunction Full - C++

Восстановить пароль Регистрация
 
СаньчО
1 / 1 / 0
Регистрация: 08.03.2014
Сообщений: 42
11.03.2014, 12:15     При компиляции выдает ошибку E2314 Call of nonfunction Full #1
Всем привет) при компиляции выдает ошибку E2314 Call of nonfunction Full


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
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <stdbool.h>
#include <alloc.h>
#define N 8
#define M 8
#define SIZE 8
// определение констант
int** input()
{
    int **a;   //Это указатель на указатель на int
    srand(time(NULL));
    int i,j;
    a=(int**)malloc(SIZE*sizeof(int*)); //Для автоматического выделения памяти
    for(i=0; i<SIZE; ++i)
    {
       a[i]=(int*)malloc(SIZE*sizeof(int));
    }
 
    for(i=0; i<SIZE; ++i)
    {
        for(j=0; j<SIZE; ++j)
        {
            printf("a[%d][%d]=",i+1,j+1);
            a[i][j]=rand()%200-99;
        }
    }
    return a;
}
void comp(int **a)
{
    int j,i, raz=0;
    for( i=0;i<SIZE;++i)
    {
        for (j=0;j<SIZE;++j)
    {
        if (a[i][j]!=a[j][i]);
        else raz+=1;
        if (raz==SIZE)
        printf("sovpadeni'a v %d stroke i stolbce\n",i+1);
    }
    raz=0;
    }
}
void sum(int **a)
{
    int i,j, result=0, fex=0;
    for (i=0;i<SIZE;++i)
    {
        for (j=0;j<SIZE;++j)
    {
        result+=a[i][j];
        if (a[i][j]<0) fex=1;
    }
        if (fex==1) printf("otricatel'ni element est' v stroke %d summa elementov= %d\n",i+1,result);
        result=0;fex=0;
    }
}
void out(int **a)
{
    int i,j;
    printf("matrica\n");
    for(i=0; i<SIZE; ++i)
    {
        for(j=0; j<SIZE; ++j)
        printf("%8d",a[i][j]);
        printf("\n");
    }
}
main ()
{
    int i, j, sum=0, flag=0;
    int **a= input();          //Создания заполнения масива рандом
    out(a);                    //Вывод масива
        printf("\n\n"); //опускается в низ
        if(N==M) //является ли 8 на 8
        {
            bool flag=false; //флажок когда он поднят значет истина, когда опущеын значет тру лож (типа булевая переменная)
            int count; //переменная количество
            for(i=0; i<N; i++)
            {
                count=0; //приравниваем количество к нулю
                for(j=0; j<M; j++)
                {
                    if(a[i][j]==a[j][i])
                    {
                        count++;       //+ 1
                    }
                    else
                    {
                        break; //прервать цикл
                    }
                }
                if(count==N)//что наша строка все таки совпала с толбцом
                {
                    flag=true;
                    printf("these strings are equal: k = %d \n", i+1); //выводит что текущая строка совыпадает с текущим столбцом
                }
            }
            if(!flag)
                printf("there is no equality\n");
        }
        else
        {
            printf("there can not be any equality\n");
        }
        printf("\n\n");
 
    comp(a);              //Расчет при помощи функции
    sum(a);               //Расчет при помощи функции
 
                                // Осчистка памяти
    for(i=0; i<SIZE; ++i)
    {
      free(a[i]);
    }
    free(a);
    a=NULL;
 
    system("pause");
    return 0;
}
Помогите...
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.03.2014, 12:15     При компиляции выдает ошибку E2314 Call of nonfunction Full
Посмотрите здесь:

Call of nonfunction C++
C++ Call of nonfunction
C++ программа выдает ошибку при компиляции
Ошибка E2314 Call of nonfunction C++
Выдает ошибку при компиляции. Не могу понять почему C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
volvo
Супер-модератор
 Аватар для volvo
21818 / 14181 / 3951
Регистрация: 22.10.2011
Сообщений: 25,061
Записей в блоге: 2
11.03.2014, 12:37     При компиляции выдает ошибку E2314 Call of nonfunction Full #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
У тебя в 46 строке функция называется sum(), а в 73-ей - переменная под таким же именем. Нельзя было дать разные имена?
СаньчО
1 / 1 / 0
Регистрация: 08.03.2014
Сообщений: 42
11.03.2014, 14:14  [ТС]     При компиляции выдает ошибку E2314 Call of nonfunction Full #3
Цитата Сообщение от UI Посмотреть сообщение
У тебя в 46 строке функция называется sum(), а в 73-ей - переменная под таким же именем. Нельзя было дать разные имена?
А разве это возможно?
volvo
Супер-модератор
 Аватар для volvo
21818 / 14181 / 3951
Регистрация: 22.10.2011
Сообщений: 25,061
Записей в блоге: 2
11.03.2014, 14:19     При компиляции выдает ошибку E2314 Call of nonfunction Full #4
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Это необходимо. Переменная - сама по себе, функция - сама по себе. К тому же, переменная у тебя в коде вообще не используется, можешь ее вообще выкинуть...
СаньчО
1 / 1 / 0
Регистрация: 08.03.2014
Сообщений: 42
11.03.2014, 14:35  [ТС]     При компиляции выдает ошибку E2314 Call of nonfunction Full #5
Все бы хорошо, но проблема так и лезет(((


Сам код:

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
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <stdbool.h>
#include <alloc.h>
#define N 8
#define M 8
#define SIZE 8
// определение констант
int** input()
{
    int **a;   //Это указатель на указатель на int
    srand(time(NULL));
    int i,j;
    a=(int**)malloc(SIZE*sizeof(int*)); //Для автоматического выделения памяти
    for(i=0; i<SIZE; ++i)
    {
       a[i]=(int*)malloc(SIZE*sizeof(int));
    }
 
    for(i=0; i<SIZE; ++i)
    {
        for(j=0; j<SIZE; ++j)
        {
            a[i][j]=rand()%200-99;
        }
    }
    return a;
}
void comp(int **a)
{
    int j,i, raz=0;
    for( i=0;i<SIZE;++i)
    {
        for (j=0;j<SIZE;++j)
    {
        if (a[i][j]!=a[j][i]);
        else raz+=1;
        if (raz==SIZE)
        printf("sovpadeni'a v %d stroke i stolbce\n",i+1);
    }
    raz=0;
    }
}
void sum(int **a)
{
    int i,j, result=0, fex=0;
    for (i=0;i<SIZE;++i)
    {
        for (j=0;j<SIZE;++j)
    {
        result+=a[i][j];
        if (a[i][j]<0) fex=1;
    }
        if (fex==1) printf("otricatel'ni element est' v stroke %d summa elementov= %d\n",i+1,result);
        result=0;fex=0;
    }
}
void out(int **a)
{
    int i,j;
    printf("matrica\n");
    for(i=0; i<SIZE; ++i)
    {
        for(j=0; j<SIZE; ++j)
        printf("%8d",a[i][j]);
        printf("\n");
    }
}
main ()
{
    int i, j, summ=0, flag=0;
    int **a= input();          //Создания заполнения масива рандом
    out(a);                    //Вывод масива
        printf("\n\n"); //опускается в низ
        if(N==M) //является ли 8 на 8
        {
            bool flag=false; //флажок когда он поднят значет истина, когда опущеын значет тру лож (типа булевая переменная)
            int count; //переменная количество
            for(i=0; i<N; i++)
            {
                count=0; //приравниваем количество к нулю
                for(j=0; j<M; j++)
                {
                    if(a[i][j]==a[j][i])
                    {
                        count++;       //+ 1
                    }
                    else
                    {
                        break; //прервать цикл
                    }
                }
                if(count==N)//что наша строка все таки совпала с толбцом
                {
                    flag=true;
                    printf("these strings are equal: k = %d \n", i+1); //выводит что текущая строка совыпадает с текущим столбцом
                }
            }
            if(!flag)
                printf("there is no equality\n");
        }
        else
        {
            printf("there can not be any equality\n");
        }
        printf("\n\n");
 
    comp(a);              //Расчет при помощи функции
    sum(a);               //Расчет при помощи функции
 
                                // Осчистка памяти
    for(i=0; i<SIZE; ++i)
    {
      free(a[i]);
    }
    free(a);
    a=NULL;
 
    system("pause");
    return 0;
}


Задание вот такое:
Для заданной матрицы размером 8 на 8 найти такие k, что k-я строка матрицы совпадает с k-м столбцом.
Найти сумму элементов в тех строках, которые содержат хотя бы один отрицательный элемент.

Первое сделал, а вот второе ни как((( Помогите плиз... Завтра на проверку уже(((
volvo
Супер-модератор
 Аватар для volvo
21818 / 14181 / 3951
Регистрация: 22.10.2011
Сообщений: 25,061
Записей в блоге: 2
11.03.2014, 14:42     При компиляции выдает ошибку E2314 Call of nonfunction Full #6
Цитата Сообщение от СаньчО Посмотреть сообщение
проблема так и лезет(((
Не вижу проблемы:

При компиляции выдает ошибку E2314 Call of nonfunction Full

Программа запускается, отрабатывает. То, что она не находит совпадения - ну, значит, его там просто нет, в рандомно заполненной матрице это более чем вероятно... Так где, говоришь, проблема?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.03.2014, 15:04     При компиляции выдает ошибку E2314 Call of nonfunction Full
Еще ссылки по теме:

Почему выдает такую ошибку? c++ при компиляции C++
C++ Программа запускается, но при компиляции выдает ошибку
Call of nonfunction in function main() C++

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

Или воспользуйтесь поиском по форуму:
СаньчО
1 / 1 / 0
Регистрация: 08.03.2014
Сообщений: 42
11.03.2014, 15:04  [ТС]     При компиляции выдает ошибку E2314 Call of nonfunction Full #7
Цитата Сообщение от UI Посмотреть сообщение
Так где, говоришь, проблема?
Все СПАСИБО ВАМ Если бы не ваш форум... я бы до сих пор бы
Yandex
Объявления
11.03.2014, 15:04     При компиляции выдает ошибку E2314 Call of nonfunction Full
Ответ Создать тему
Опции темы

Текущее время: 23:54. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru