امتیاز موضوع:
  • 1 رأی - میانگین امتیازات: 5
  • 1
  • 2
  • 3
  • 4
  • 5
ماتريس اسپارس يا ماتريس خلوت
نویسنده پیام
The.Ghost غایب
مدیر بازنشسته
*****

ارسال‌ها: 461
موضوع‌ها: 201
تاریخ عضویت: مهر ۱۳۸۸

تشکرها : 674
( 354 تشکر در 158 ارسال )
ارسال: #1
Rolleyes  ماتريس اسپارس يا ماتريس خلوت
ماتريس اسپارس يا ماتريس خلوت

کد:
#include <iostream.h>
#include <conio.h>
#include <iomanip.h>

main()
{
  int mat1[6][3],mat2[6][3],res[11][3];
  clrscr();
  mat1[0][0]=20;
  mat1[0][1]=20;
  cout<<"input number of values";
  cin>>mat1[0][2];
  for(int i=1;i<=mat1[0][2];i++)
  {
    cout<<"input row:";
    cin>>mat1[i][0];
    cout<<"input col:";
    cin>>mat1[i][1];
    cout<<"input value:";
    cin>>mat1[i][2];
  }
  clrscr();
  mat2[0][0]=20;
  mat2[0][1]=20;
  cout<<"input number of values";
  cin>>mat2[0][2];
  for(i=1;i<=mat2[0][2];i++)
  {
    cout<<"input row:";
    cin>>mat2[i][0];
    cout<<"input col:";
    cin>>mat2[i][1];
    cout<<"input value:";
    cin>>mat2[i][2];
  }
  int j,k=1,sum;
  i=j=1;
  while(i<=mat1[0][2] && j<=mat2[0][2])
  {
     if(mat1[i][0]<mat2[j][0])
     {
       res[k][0]=mat1[i][0];
       res[k][1]=mat1[i][1];
       res[k][2]=mat1[i][2];
       i++;
       k++;
     }
     else if(mat2[j][0]<mat1[i][0])
     {
       res[k][0]=mat2[j][0];
       res[k][1]=mat2[j][1];
       res[k][2]=mat2[j][2];
       j++;
       k++;
     }
     else if(mat1[i][1]<mat2[j][1])
     {
       res[k][0]=mat1[i][0];
       res[k][1]=mat1[i][1];
       res[k][2]=mat1[i][2];
       i++;
       k++;
     }
     else if(mat2[j][1]<mat1[i][1])
     {
       res[k][0]=mat2[j][0];
       res[k][1]=mat2[j][1];
       res[k][2]=mat2[j][2];
       j++;
       k++;
     }
     else
     { sum=mat1[i][2]+mat2[j][2];
       if(sum!=0)
       {
     res[k][0]=mat2[j][0];
     res[k][1]=mat2[j][1];
     res[k][2]=sum;
     i++;
     j++;
     k++;
       }
       else
       { i++;
     j++;
       }
     }
  }
  while(i<=mat1[0][2])
  {
       res[k][0]=mat1[i][0];
       res[k][1]=mat1[i][1];
       res[k][2]=mat1[i][2];
       i++;
       k++;
  }
  while(j<=mat2[0][2])
  {
       res[k][0]=mat2[j][0];
       res[k][1]=mat2[j][1];
       res[k][2]=mat2[j][2];
       j++;
       k++;
  }
  res[0][0]=20;
  res[0][1]=20;
  res[0][2]=k-1;
  clrscr();
  for(i=0;i<=res[0][2];i++)
  {
    for(j=0;j<3;j++)
       cout<<setw(5)<<res[i][j];
    cout<<endl;
  }
}

Assembly Language 039

۰۶-اردیبهشت-۱۳۹۱, ۱۳:۳۷:۵۵
ارسال‌ها
پاسخ


موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
  کلاس ماتريس adameh_bahal 15 15,103 ۱۲-خرداد-۱۳۸۸, ۲۳:۲۶:۴۲
آخرین ارسال: adameh_bahal

پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 1 مهمان

صفحه‌ی تماس | IranVig | بازگشت به بالا | | بایگانی | پیوند سایتی RSS