PDA

View Full Version : مشکل متغیر برای ضرب دو ماتریس



Tiyana
جمعه 08 آذر 1392, 19:35 عصر
سلام دوستان من برنامه ی زیر رو برای ضرب دو ماتریس نوشتم که به خوبی اجرا میشه ولی میخوام برنامه رو جوری بنویسم که کاربر سطر و ستون رو مشخص کنه اما راهی براش پیدا نکردم چون به نظرم از متغیر یک تابع نمیتونیم در تابع های دیگه استفاده کنیم(البته استاتیک رو شک دارم)
کسی نظری داره کمکم کنه؟


#include<stdio.h>
#include<conio.h>
const int ar=2,ac=3,br=3,bc=4;
int mat1[2][3],mat2[3][4],mat3[2][4];
int input();
void output();
void mult();
int main()
{
output();
getch();
return 0;
}
//************************************************** ********
int input()
{
int i,j;
for(i=0;i<ar;i++)
for(j=0;j<ac;j++)
{
printf("Enter mat1[%d][%d]:",i+1,j+1);
scanf("%d",&mat1[i][j]);
}
for(i=0;i<br;i++)
for(j=0;j<bc;j++)
{
printf("Enter mat2[%d][%d]:",i+1,j+1);
scanf("%d",&mat2[i][j]);
}
}
//************************************************** ********
void mult()
{
int i,j,k;
input();
for(i=0;i<ar;i++)
{
for(j=0;j<bc;j++)
{
mat3[i][j]=0;
for(k=0;k<ac;k++)
mat3[i][j]=mat3[i][j]+mat1[i][k]*mat2[k][j];
}}
}
//************************************************** **********
void output()
{
int i,j;
mult();
printf("\nThe produce of mat1 & mat2 is:\n\n");
for(i=0;i<ar;i++)
{
for(j=0;j<bc;j++)
printf("%5d",mat3[i][j]);
printf("\n");
}
}
//************************************************** **********

abdorreza
جمعه 08 آذر 1392, 22:50 عصر
سلام
خوب متغیرهای سطر و ستون را در بالای main معرفی کنید تا در تمام توابع قابل شناسایی باشند و یا اینکه متغیرهای سطر و ستون را داخل main معرفی کنید و سپس به عنوان پاراکتر به توابع ارسال کنید.

Ananas
جمعه 08 آذر 1392, 23:15 عصر
http://barnamenevis.org/showthread.php?422773-%D8%A8%D9%87%D8%AA%D8%B1%DB%8C%D9%86-%D8%B1%D9%88%D8%B4-%D8%AA%D8%AE%D8%B5%DB%8C%D8%B5-%D8%AD%D8%A7%D9%81%D8%B8%D9%87-%D9%85%D8%A7%D8%AA%D8%B1%DB%8C%D8%B3-%D8%AF%D8%B1-c&p=1892671&viewfull=1#post1892671