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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 01.07.2012, 00:09   #1
julia9311
Пользователь
 
Регистрация: 23.06.2012
Сообщений: 69
По умолчанию ошибка в программе

Код:
#include <iostream>
#include <conio.h>
using namespace std;
 
int a[10][10];
int i=0, j=0, n=10, m=10, sum=0, max=0, b=n-1, c=1;
template< typename T > 
T sumF()
{
    T s=0;
    for(i=0,j=b;i<c;i++,j++)
    s+=a[i][j];
    return s;
}
 
template< typename T > 
T maxx(T s, T max)
{
    return(max<s)? s:max;
}
int main()
{
    int *p;
    p=new int[n*m];
 
  cout<<"Vvedite elementi massiva\n";
 
    for(i=0; i<n; i++)
    {
        for(j=0; j<m; j++)
        {
           cout<<"a["<<i<<"]["<<j<<"]= ";
         cin>>a[i][j];
        }
    }
 
    while(b)
    {
        max=maxx(sumF(), max);
        c++;
        --b;
    }
 
 
getch();
return 0;
}
выдает
C:\Documents and Settings\Admin\Local Settings\Temp\Rar$DI61.265\двумерны е массивы ч2.cpp(47) : error C2783: 'T __cdecl sumF(void)' : could not deduce template argument for 'T'
julia9311 вне форума Ответить с цитированием
Старый 01.07.2012, 01:45   #2
julia9311
Пользователь
 
Регистрация: 23.06.2012
Сообщений: 69
По умолчанию

вот эта же программа немного по-другому

Код:
#include <iostream>
//#include <conio.h>
 
template< typename T > 
T sumF(T** a, int n, int m, int d)
{
    T s = 0;
    int i = 0;
 
    if (d < 0)
    {
        i = -d;
        d = 0;
    }
    
    while(i < n && d < m)
        s += a[i++][d++];
 
    return s;
}
 
int main()
{
    int n;
    int m;
 
    std::cout << "Input num of rows\n";
    std::cin >> n;
    std::cout << "Input num of cols\n";
    std::cin >> m;
    int *p = new int[n*m];
    int **a = new int*[n];
 
    std::cout << "Input elements of array\n";
 
    for (int i = 0; i < n; i++)
    {
        a[i] = p + i*m;
        for (int j = 0; j < m; j++)
        {
            std::cout << "a[" << i << "][" << j << "] = ";
            std::cin >> a[i][j];
        }
    }
 
    int diag = 1 - n;
    int max = sumF(a, n, m, diag);
    while (++diag < m)
    {
        max = std::max(sumF(a, n, m, diag), max);
    }
    std::cout << "Max diagonal sum: " << max << std::endl;
 
    delete [] a;
    delete [] p;
 
    //getch();
    return 0;
}
но все равно выдает
C:\Program Files\Microsoft Visual Studio\MyProjects\шаблоны\шаблоны.c pp(50) : error C2039: 'max' : is not a member of 'std'
C:\Program Files\Microsoft Visual Studio\MyProjects\шаблоны\шаблоны.c pp(50) : error C2064: term does not evaluate to a function
Error executing cl.exe.
julia9311 вне форума Ответить с цитированием
Старый 01.07.2012, 06:41   #3
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Цитата:
C:\Documents and Settings\Admin\Local Settings\Temp\Rar$DI61.265\двумерны е массивы ч2.cpp(47) : error C2783: 'T __cdecl sumF(void)' : could not deduce template argument for 'T'
Как вам уже сказали - перевидети. Кстати, кросспост - нарушение правил форума.

Цитата:
C:\Program Files\Microsoft Visual Studio\MyProjects\шаблоны\шаблоны.c pp(50) : error C2039: 'max' : is not a member of 'std'
Код:
#include <algorithm>
p51x вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ошибка в программе MKS23 Помощь студентам 1 13.06.2012 20:36
Ошибка в программе Silva_de_souza Паскаль, Turbo Pascal, PascalABC.NET 8 03.05.2012 17:14
Ошибка в программе AncientHero Паскаль, Turbo Pascal, PascalABC.NET 1 15.03.2011 21:21
Ошибка в программе LuBuMaster Visual C++ 5 07.10.2010 17:19
Ошибка в программе larin1974 Помощь студентам 7 06.03.2010 20:44