Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Ада и другие языки _ Нахождение мах елемента

Автор: Marya 7.12.2010 4:23

 double maximum(double **a,int A)
{
double max;
max=a[0][0];
for(i=0;i<A;++i)
for(j=0;j<A;++j)
{
if(max<a[i][j])
{max=a[i][j];
k=i;m=j;}

}
printf("Koordinati max elementu [%u]/[%u]\n",m,k);
//printf ("%lf",max=a[i][j]);
return max;

}


не могу найти ошибкуsad.gif..А размер матрици..


Автор: sheka 7.12.2010 6:42

Не компилировал, но:
везде идет обращение к индексам так: a[i][j]
k=i;m=j; - поиск координат макс элемента,
и после этого на выводе получается так: a[m][k] что равно a[j][i]
шаришь?

И попробуй вообще обойтись без переменной макс. Не отбирай у компа память)

Автор: volvo 7.12.2010 13:49

Цитата
не могу найти ошибку
Ты покажи, как вызываешь эту функцию, и как описан сам массив, который в нее передается, тогда можно будет говорить об ошибке. То, что сказал sheka - это так, мелкий недочет...

Автор: Marya 7.12.2010 22:41

Цитата(volvo @ 7.12.2010 10:49) *

Ты покажи, как вызываешь эту функцию, и как описан сам массив, который в нее передается, тогда можно будет говорить об ошибке. То, что сказал sheka - это так, мелкий недочет...

вызывал maximum(a,A);
Ошибку нашёл..передавал у функцию double, а нужно было float mega_chok.gif

 void maximum(float **a,unsigned int A)
{
float max=a[0][0];
k=0;
m=0;
for(i=0;i<A;i++)
{
for(j=0;j<A;j++)
if(a[i][j]>max)
{
max=a[i][j];
k=i;m=j;
}

}

printf("Koordinati max elementu [%u]/[%u] sum element=%f \n",k,m,max);