Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.09.2009, 21:29   #1
phpcreator
Пользователь
 
Регистрация: 09.09.2009
Сообщений: 18
Печаль С++. ошибка в функции.

Код:
#include <cstdlib>
#include <conio.h>
#include <iostream>
#define n 5
#define m 5
using namespace std;
int count(int [n][m],int );

int main()
{ int i,j,A;
    int Massiv[n][m];
    for(i=0; i<n; i++)
    for (j=0; j<m; j++)
    Massiv[i][j]=rand()%100;
    
    
    cout<<"Nije predstavlen dvumernii massiv:"<<endl;
    for (i=0; i<n; i++)
    {
        for (j=0; j<m; j++)
        cout<<Massiv[i][j]<<" ";
        puts("");
    }
    
    
    cout<<"Vvedite 4islo"<<endl;
    cin>>A;
    
    cout<<"Kol-vo elementov raspolojenih na pobochinoi diagonali = "<<count(Massiv[n][m],A);
    
    getch();
    return 0;
    
}

int count(int L[n][m],int A)
{ int i,j=m-1;
int k=0;
    for (i=0; i<n; i++)
    if(L[i][j-i]<A)k++;
    return k;
}


Чтото не то с функцией, но что именно не могу понять((
phpcreator вне форума Ответить с цитированием
Старый 15.09.2009, 22:11   #2
АНК
Пользователь
 
Регистрация: 01.09.2009
Сообщений: 30
По умолчанию

Цитата:
Сообщение от phpcreator Посмотреть сообщение
Чтото не то с функцией
Компилятор ругается?
A надо объявлять
Код:
int count(int **, int, int, int );
А реализация
Код:
int count(int **mas, int n, int m, int A)
{
 int i,j=m-1;
 int k=0;
    for (i=0; i<n; i++)
    if(mas[i][j-i]<A)k++;
    return k;
}
Ну а вызов сделайте сами!

Последний раз редактировалось АНК; 15.09.2009 в 22:21.
АНК вне форума Ответить с цитированием
Старый 16.09.2009, 02:02   #3
counter
Участник клуба
 
Регистрация: 18.10.2008
Сообщений: 1,409
По умолчанию

ну кто так массив передает??? а?

Код:
 cout<<"Kol-vo elementov raspolojenih na pobochinoi diagonali = "<<count(Massiv[n][m],A);
так надо

Код:
 cout<<"Kol-vo elementov raspolojenih na pobochinoi diagonali = "<<count(Massiv,A);
counter вне форума Ответить с цитированием
Старый 16.09.2009, 17:14   #4
phpcreator
Пользователь
 
Регистрация: 09.09.2009
Сообщений: 18
По умолчанию

вообще когда надо передать двумерный массив в функцию, надо задать размер массива. У меня он задан
phpcreator вне форума Ответить с цитированием
Старый 16.09.2009, 18:42   #5
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

Код:
count(Massiv[n][m],A);
Тут вы не указатель на массив передаёте, а конкретное значение из этого массива, которое находится в n-той строке и m-том столбике. Более того, значение это находится за пределами вашего массива) Если хотите передавать размер массива, то делайте это отдельными параметрами:
Код:
int count(int** L, int rows, int cols, int A);
...
int main()
{
...
cout<<"Kol-vo elementov raspolojenih na pobochinoi diagonali = "<<count(Massiv, n, m, A);
...
}
netrino вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка в функции вывода новостей smn1 PHP 2 07.09.2009 08:09
Табулирование функции. Ошибка 'List index out of bounds(0)' Мэр Общие вопросы Delphi 2 03.06.2009 09:11
Видимо ошибка в функции(помогите исправить) GAGARIN-NEW Общие вопросы Delphi 18 07.05.2008 12:30
ошибка в inline функции Tan4ik Помощь студентам 2 04.05.2008 21:26
Ошибка при декларировании функции в Firebird из UDF shurik_7866 БД в Delphi 1 30.07.2007 08:55