نمایش نتایج 1 تا 8 از 8

نام تاپیک: دترمینان

  1. #1

    دترمینان

    سلام عزیزان

    من برنامه دترمینان n*n رو میخواستم

    مرسی

  2. #2
    به صورت بازگشتی یا تابع معمولی؟

  3. #3
    کاربر تازه وارد
    تاریخ عضویت
    خرداد 1384
    محل زندگی
    sina.pn2@gmail.com
    پست
    49
    اگه با استفاره از توابع معمولی باشه میتونی رو کمک من هم حساب کنی :موفق: :flower:

  4. #4
    int deter(int x[10][10],int n)
    {
    if(n==1)return(x[0][0] );
    int inmatrix[10][10];
    int row1,col1,col2,d,sign=1,sum=0;
    for(d=0;d<n;d++){
    //extracting an internal matrix without row(0) and col(d)
    for(row1=1;row1<n;row1++) //row counter
    for(col1=0,col2=0;col1<n;col1++) //col counter
    if(col1!=d) {
    inmatrix[row1-1][col2] = x[row1][col1];
    col2++; //counter for internal matrix col
    }

    sum+=sign*x[0][d]*deter(inmatr ix,n-1);
    sign*=(-1);
    }
    return sum;
    }

    البته این برای حداکثر 10*10 هست. اگر میخوای محدودیت نداشته باشه باید بجای تعریف آرایه با new یا malloc حافظه بگیری. خیلی فرقی نداره اما چون حوصله دوباره نوشتن ندارم خودت درستش کن :موفق:

  5. #5

  6. #6
    :sad2: خواهش میکنم!!!

  7. #7
    کاربر تازه وارد
    تاریخ عضویت
    خرداد 1384
    محل زندگی
    sina.pn2@gmail.com
    پست
    49
    :flower: :flower:
    ::نوشتن:: مرسی

  8. #8
    کاربر دائمی آواتار powerboy2988
    تاریخ عضویت
    تیر 1385
    محل زندگی
    تهران
    سن
    37
    پست
    1,301

    #include <stdio.h>
    #include <conio.h>
    #include <math.h>

    #define N 4
    #define FALSE 0

    void main(void)
    {
    long determination(int [N][N],int,int);
    int array_1[N][N],i,j;
    clrscr();
    for(i=0;i<N;i++)
    for(j=0;j<N;i++)
    {
    printf("enter A[%u][%u]:\0",i,j)
    scanf("%d",&array_1[i][j]);
    }
    printf("determination of A is =%d\n\0",detemination(array_1,N,N));
    }

    long determination(int [N][N],int,int)
    {
    int i,j,ii,jj,i_i,j_j;
    int tar[N][N],a1,a2,a3,a4;
    long s=0;
    if(m!==n)
    return 0;
    if(m==2)
    {
    a1=*(*(ar+0)+0);
    a4=*(*(ar+1)+1);
    a2=*(*(ar+0)+1);
    a3=*(*(ar+1)+0);
    retrun(a1*a4-a2*a3)
    }
    else
    {
    for(i=0;i<m;i++)
    for(j=0;j<n;j++)
    tar[i][j]=*(*(ar+i)+j)
    for(j=0;j<n;j++)
    {
    i_i=j_j=0;
    for(ii=1;ii<m;ii++)
    {
    for(jj=1;jj<n;jj++)
    if(jj!==j)
    {
    *(*(ar+i_i)+j_j=tar[ii][jj];
    j_j++;
    }
    i_i++;
    j_j=0;
    }
    s+=((j+1)%2==0)?-1:+1)*tar[0][j]*determination(ar,m-1,n-1);
    }
    retrun(s)
    }

    }

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •