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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.03.2011, 17:22   #1
Monomah
Пользователь
 
Регистрация: 24.11.2010
Сообщений: 16
По умолчанию type mismatch in reduclaration

Всем привет, компилятор выдает ошибку type mismatch in reduclaration of 'obrtm' и указывает на строку(я её выделил).
как это исправить?
зы это самый обычный Си.
Код:
#include <conio.h>
#include <stdlib.h>
#include <stdio.h>
void main(void)
{
int i,j,k,n;
double *a,*o,*b,*c;
void obrtm(double *a, double *b, double *c, double *o, int n);
scanf ("%d",&n);
a=(double*) malloc(n*n*sizeof(double));
if (a==NULL) { printf("pamat ne videlilas"); return;}
o=(double*) malloc(n*n*sizeof(double));
if (o==NULL) { printf("pamat ne videlilas"); free(a); return;}
b=(double*) malloc(n*n*sizeof(double));
if (b==NULL) { printf("pamat ne videlilas"); free(a);free(o); return;}
c=(double*) malloc(n*n*sizeof(double));
if (c==NULL) { printf("pamat ne videlilas"); free(a);free(o);free(b); return;}

for (i=0;i<n;i++)
    for (j=0;j<n;j++)
    scanf("%lf",&a[i*n+j]);

obrtm( a,b,c,o,n);
for (i=0;i<n;i++)
    for (j=0;j<n;j++)
	printf("%lf",o[i*n+j]);

}
int obrtm(double *a, double *b, double *c, double *o, int n)
{
int i,j,k;
for(i=0;i<n;i++)
        for (j=0;j<n;j++)
        if (i==j) b[i*n+j]=1;
        else if (i<=j) c[i*n+j]=0;
             else b[i*n+j]=0;

for (i=0;i<n;i++)
    for (j=0;j<n;j++)
        if (i<j) if (fabs(c[i*n+i])==0) printf ("delenie\n");
                 else {
                      b[i*n+j]=a[i*n+j];
                      for (k=0;k<i;k++)
                          b[i*n+j]=(b[i*n+j]-c[i*n+k]*b[k*n+j])/c[i*n+i];
                      }
        else
        {
        c[i*n+j]=a[i*n+j];
        for (k=0;k<j;k++)
            c[i*n+j]=c[i*n+j]-c[i*n+k]*b[k*n+j];
        }
for (i=0;i<n;i++)
    for (j=0;j<n;j++)
        {
        o[i*n+j]=0;
        for (k=0;k<n;k++)
            o[i*n+j]+=c[i*n+k]*b[k*n+j];
        }

for (i=0;i<n;i++)
    for (j=0;j<n;j++)
	printf("%lf\n",o[i*n+j]);
getch();

free(a); free(o); free(b); free(c);

}
Monomah вне форума Ответить с цитированием
Старый 14.03.2011, 18:07   #2
skgwazap
Пользователь
 
Регистрация: 24.11.2010
Сообщений: 40
По умолчанию

В описании функции указан один тип, а в реализации уже другой. Либо void либо int
skgwazap вне форума Ответить с цитированием
Старый 14.03.2011, 18:13   #3
Monomah
Пользователь
 
Регистрация: 24.11.2010
Сообщений: 16
По умолчанию

ясно спс.... сейчас новая проблема....
программа скомпилировалась все нормально...ввожу первое значение жму энтер мне выводит мол abnormal program termination, из за чего?
Monomah вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Type mismatch in expression SlavaSH БД в Delphi 24 02.05.2012 09:19
Ошибка 26 Type mismatch. Mambakremen Помощь студентам 4 04.12.2010 18:30
Data type mismatch???!!! b.grigorev Помощь студентам 17 16.08.2010 08:37
Ошибка run-time error 13 Type mismatch в VBA Kracozebr Microsoft Office Word 9 19.07.2010 16:10
Эта надоедливая ошибка: Type mismatch expresion :( artemavd БД в Delphi 8 25.06.2009 17:21