bavimorteza
چهارشنبه 22 اردیبهشت 1389, 17:41 عصر
با سلام خدمت دوستان من در کد زیر دو مشکل دارم یکی در قسمت 5 و دیگری در قسمت 6
#include <stdio.h>
#include <conio.h>
int main ()
{
int z;
printf("Please enter m for m*m matrix: ");
scanf("%d",&z);
int a[z][z], b[z][z], c[z][z];
int i,j,k,l,p,q,r,s,ii;
float mbavi[z][z];
float k2;
int jam,jam2;
while(l!=8)
{
printf("\n**************************\n INSTRUCTIONS\n**************************\n\n PLEASE enter the choice againt which matrix operation you want to apply.\n\nENTER 1 to perform matrix addition\nENTER 2 to perform subtraction\nENTER 3 to perform mutilpication\nENTER 4 to perform scalar matrix Mulitplication\nENTER 5 to perform matrix Inversion\nENTER 6 to find determinant of matrix\nENTER 7 to find transpose of a matrix\nENTER 8 to EXIT from program");
printf("\n\n PLEASE ENTER YOUR CHOICE: ");
scanf("%d",&l);
if(l==1)
{
printf("\n\nENTER First m*m matrix for addition\n");
for(i=0;i<z;i++)
{
for(j=0;j<z;j++)
{
printf("\n");
printf("Element at %d*%d: ",i+1,j+1);
scanf("%d",&a[i][j]);
}
}
printf("\n\nENTER SECOND m*m matrix for addition\n");
for(i=0;i<z;i++)
{
for(j=0;j<z;j++)
{
printf("\n");
printf("Element at %d*%d: ",i+1,j+1);
scanf("%d",&b[i][j]);
}
}
for(i=0;i<z;i++)
{
for(j=0;j<z;j++)
{
c[i][j]=0; /*TO AVOID CARBAGE VALUES*/
c[i][j] = a[i][j] + b[i][j];
}
}
printf("\n FIRST MATIRX YOU ENTERED\n");
for(i=0;i<z;i++)
{
for(j=0;j<z;j++)
{
printf(" %d \t", a[i][j]);
}
printf("\n");
}
printf("\n");
printf("\n SECOND MATRIX YOU ENTERED\n");
for(i=0;i<z;i++)
{
for(j=0;j<z;j++)
{
printf(" %d \t",b[i][j]);
}
printf("\n");
}
printf("\nRESULT =\n");
for(i=0;i<z;i++)
{
for(j=0;j<z;j++)
{
printf(" %d \t",c[i][j]);
}
printf("\n");
}
}
if(l==2)
{
printf("\n\nENTER FIRST 3*3 matrix for subtraction\n");
for(i=0;i<z;i++)
{
for(j=0;j<z;j++)
{
printf("\nElement at %d*%d: ",i+1,j+1);
scanf("%d",&a[i][j]);
}
}
printf("\n\nENTER SECOND 3*3 matrix for subtraction\n");
for(i=0;i<z;i++)
{
for(j=0;j<z;j++)
{
printf("\nElement at %d*%d: ",i+1,j+1);
scanf("%d",&b[i][j]);
}
}
for(i=0;i<z;i++)
{
for(j=0;j<z;j++)
{
c[i][j]=0; /*TO AVOID CARBAGE VALUES*/
c[i][j] = a[i][j] - b[i][j];
}
}
printf("\n FIRST MATIRX YOU ENTERED\n");
for(i=0;i<z;i++)
{
for(j=0;j<z;j++)
{
printf(" %d \t", a[i][j]);
}
printf("\n");
}
printf("\n SECOND MATRIX YOU ENTERED\n");
for(i=0;i<z;i++)
{
for(j=0;j<z;j++)
{
printf(" %d \t",b[i][j]);
}
printf("\n");
}
printf("\nRESULT =\n");
for(i=0;i<z;i++)
{
for(j=0;j<z;j++)
{
printf(" %d \t",c[i][j]);
}
printf("\n");
}
}
if (l==3)
{
printf("\nENTER First m*m matrix for MULIPLICATION\n");
for(i=0;i<z;i++)
{
for(j=0;j<z;j++)
{
printf("\nElement at %d*%d: ",i+1,j+1);
scanf("%d",&a[i][j]);
}
}
printf("\nENTER Second m*m matrix for MULIPLICATION\n");
for(i=0;i<z;i++)
{
for(j=0;j<z;j++)
{
printf("\nElement at %d*%d: ",i+1,j+1);
scanf("%d",&b[i][j]);
}
}
for(i=0;i<z;i++)
{
for(j=0;j<z;j++)
{
c[i][j]=0; /* TO AVOID CARBAGE VALUES*/
for(k=0;k<z;k++)
c[i][j]=c[i][j]+(a[i][k]*b[k][j]);
}
}
printf("\nFIRST MATRIX YOU ENTERED:\n");
for(i=0;i<z;i++)
{
for(j=0;j<z;j++)
{
printf(" %d \t",a[i][j]);
}
printf("\n");
}
printf("\nSECOND MATRIX YOU ENTERED:\n");
for(i=0;i<z;i++)
{
for(j=0;j<z;j++)
{
printf(" %d \t ",b[i][j]);
}
printf("\n");
}
printf("\n\nRESULT= \n");
for(i=0;i<z;i++)
{
for(j=0;j<z;j++)
{
printf(" %d ",c[i][j]);
}
printf("\n");
}
}
if(l==4)
{
printf("\nENTER THE NO TO WHICH YOU WANT TO MUTILY MATRIX: ");
scanf("%d",&k);
printf("\nENTER 3*3 Matrix for scalar Multiplication by %d:\n",k);
for(i=0;i<z;i++)
{
for(j=0;j<z;j++)
{
printf("\nElement at %d*%d: ",i+1,j+1);
scanf("%d",&a[i][j]);
}
}
for(i=0;i<z;i++)
{
for(j=0;j<z;j++)
{
c[i][j]=0;
c[i][j]= k*a[i][j];
}
}
printf("\n FIRST MATIRX YOU ENTERED\n");
for(i=0;i<z;i++)
{
for(j=0;j<z;j++)
{
printf(" %d \t", a[i][j]);
}
printf("\n");
}
printf("\nRESULT =\n");
for(i=0;i<z;i++)
{
for(j=0;j<z;j++)
{
printf(" %d \t",c[i][j]);
}
printf("\n");
}
}
if(l==5)
{
printf("\nENTER THE NO TO WHICH YOU WANT TO taghsim MATRIX: ");
scanf("%d",&k);
printf("\nENTER m*m Matrix for taghsim Multiplication by %d:\n",k);
for(i=0;i<z;i++)
{
for(j=0;j<z;j++)
{
printf("\nElement at %d*%d: ",i+1,j+1);
scanf("%d",&a[i][j]);
}
}
for(i=0;i<z;i++)
{
for(j=0;j<z;j++)
{
c[i][j]=0;
mbavi[i][j]=0;
c[i][j]=(float)(a[i][j])/(float)k;
mbavi[i][j]=(float)c[i][j];
}
}
printf("\n FIRST MATIRX YOU ENTERED\n");
for(i=0;i<z;i++)
{
for(j=0;j<z;j++)
{
printf(" %d \t", a[i][j]);
}
printf("\n");
}
printf("\nRESULT =\n");
for(i=0;i<z;i++)
{
for(j=0;j<z;j++)
{
printf(" %f \t",mbavi[i][j]);
}
printf("\n");
}
}
if(l==6)
{
printf("\nENTER 3*3 Matrix for scalar jam ghotr");
for(i=0;i<z;i++)
{
for(j=0;j<z;j++)
{
printf("\nElement at %d*%d: ",i+1,j+1);
scanf("%d",&a[i][j]);
}
}
for(i=0;i<z;i++)
{
printf("a[%d][%d]=%d \t",i,i,a[i][i]);
printf("i=%d and z=%d\t",i,z);
jam+=a[i][i];
}
printf("%d",jam);
printf("\n FIRST MATIRX YOU ENTERED\n");
for(i=0;i<z;i++)
{
for(j=0;j<z;j++)
{
printf(" %d \t", a[i][j]);
}
printf("\n");
}
printf("\nRESULT =\n");
printf(" %d \t",jam);
printf("\n");
}
if(l==7)
{
printf("\nENTER the matrix you wish to inverted\n");
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
printf("\nElement at %d*%d: ",i+1,j+1);
scanf("%d",&a[i][j]);
}
}
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
c[i][j]=0;
c[0][0]=a[0][0];
c[0][1]=a[1][0];
c[0][2]=a[2][0];
c[1][0]=a[0][1];
c[1][1]=a[1][1];
c[1][2]=a[2][1];
c[2][0]=a[0][2];
c[2][1]=a[1][2];
c[2][2]=a[2][2];
}
}
printf("\nMATIRX YOU ENTERED\n");
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
printf(" %d \t", a[i][j]);
}
printf("\n");
}
printf("\nRESULT =\n");
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
printf(" %d \t",c[i][j]);
}
printf("\n");
}
}
if(l==8)
{
printf("\n\n\n THANKYOU VERY MUCH!!\n For Using MATRIX CALCULATOR");
}
if(l>=9)
{
printf("\n\n\n\n WARNING!\n YOU HAVE ENTERED AN INVALID ENTRY \n PLEASE SELECT A VALID ENTRY PRESS ENTER FOR ( OK )");
}
getch();
}
return 0 ;
}
/*___________________THE END_____________________*/
توی قسمت 5 ) عبارت c[i][j]=(float)(a[i][j])/(float)k; رو در نمایش آخر میخوام که اعشاری هم داشته باشه ولی هر کاری میکنم تقسیم صحیح میکنه
قسمت 6 ) جواب نهایی رو چرت و پرت میده
لطفا به من کمک کنید
با تشکر
#include <stdio.h>
#include <conio.h>
int main ()
{
int z;
printf("Please enter m for m*m matrix: ");
scanf("%d",&z);
int a[z][z], b[z][z], c[z][z];
int i,j,k,l,p,q,r,s,ii;
float mbavi[z][z];
float k2;
int jam,jam2;
while(l!=8)
{
printf("\n**************************\n INSTRUCTIONS\n**************************\n\n PLEASE enter the choice againt which matrix operation you want to apply.\n\nENTER 1 to perform matrix addition\nENTER 2 to perform subtraction\nENTER 3 to perform mutilpication\nENTER 4 to perform scalar matrix Mulitplication\nENTER 5 to perform matrix Inversion\nENTER 6 to find determinant of matrix\nENTER 7 to find transpose of a matrix\nENTER 8 to EXIT from program");
printf("\n\n PLEASE ENTER YOUR CHOICE: ");
scanf("%d",&l);
if(l==1)
{
printf("\n\nENTER First m*m matrix for addition\n");
for(i=0;i<z;i++)
{
for(j=0;j<z;j++)
{
printf("\n");
printf("Element at %d*%d: ",i+1,j+1);
scanf("%d",&a[i][j]);
}
}
printf("\n\nENTER SECOND m*m matrix for addition\n");
for(i=0;i<z;i++)
{
for(j=0;j<z;j++)
{
printf("\n");
printf("Element at %d*%d: ",i+1,j+1);
scanf("%d",&b[i][j]);
}
}
for(i=0;i<z;i++)
{
for(j=0;j<z;j++)
{
c[i][j]=0; /*TO AVOID CARBAGE VALUES*/
c[i][j] = a[i][j] + b[i][j];
}
}
printf("\n FIRST MATIRX YOU ENTERED\n");
for(i=0;i<z;i++)
{
for(j=0;j<z;j++)
{
printf(" %d \t", a[i][j]);
}
printf("\n");
}
printf("\n");
printf("\n SECOND MATRIX YOU ENTERED\n");
for(i=0;i<z;i++)
{
for(j=0;j<z;j++)
{
printf(" %d \t",b[i][j]);
}
printf("\n");
}
printf("\nRESULT =\n");
for(i=0;i<z;i++)
{
for(j=0;j<z;j++)
{
printf(" %d \t",c[i][j]);
}
printf("\n");
}
}
if(l==2)
{
printf("\n\nENTER FIRST 3*3 matrix for subtraction\n");
for(i=0;i<z;i++)
{
for(j=0;j<z;j++)
{
printf("\nElement at %d*%d: ",i+1,j+1);
scanf("%d",&a[i][j]);
}
}
printf("\n\nENTER SECOND 3*3 matrix for subtraction\n");
for(i=0;i<z;i++)
{
for(j=0;j<z;j++)
{
printf("\nElement at %d*%d: ",i+1,j+1);
scanf("%d",&b[i][j]);
}
}
for(i=0;i<z;i++)
{
for(j=0;j<z;j++)
{
c[i][j]=0; /*TO AVOID CARBAGE VALUES*/
c[i][j] = a[i][j] - b[i][j];
}
}
printf("\n FIRST MATIRX YOU ENTERED\n");
for(i=0;i<z;i++)
{
for(j=0;j<z;j++)
{
printf(" %d \t", a[i][j]);
}
printf("\n");
}
printf("\n SECOND MATRIX YOU ENTERED\n");
for(i=0;i<z;i++)
{
for(j=0;j<z;j++)
{
printf(" %d \t",b[i][j]);
}
printf("\n");
}
printf("\nRESULT =\n");
for(i=0;i<z;i++)
{
for(j=0;j<z;j++)
{
printf(" %d \t",c[i][j]);
}
printf("\n");
}
}
if (l==3)
{
printf("\nENTER First m*m matrix for MULIPLICATION\n");
for(i=0;i<z;i++)
{
for(j=0;j<z;j++)
{
printf("\nElement at %d*%d: ",i+1,j+1);
scanf("%d",&a[i][j]);
}
}
printf("\nENTER Second m*m matrix for MULIPLICATION\n");
for(i=0;i<z;i++)
{
for(j=0;j<z;j++)
{
printf("\nElement at %d*%d: ",i+1,j+1);
scanf("%d",&b[i][j]);
}
}
for(i=0;i<z;i++)
{
for(j=0;j<z;j++)
{
c[i][j]=0; /* TO AVOID CARBAGE VALUES*/
for(k=0;k<z;k++)
c[i][j]=c[i][j]+(a[i][k]*b[k][j]);
}
}
printf("\nFIRST MATRIX YOU ENTERED:\n");
for(i=0;i<z;i++)
{
for(j=0;j<z;j++)
{
printf(" %d \t",a[i][j]);
}
printf("\n");
}
printf("\nSECOND MATRIX YOU ENTERED:\n");
for(i=0;i<z;i++)
{
for(j=0;j<z;j++)
{
printf(" %d \t ",b[i][j]);
}
printf("\n");
}
printf("\n\nRESULT= \n");
for(i=0;i<z;i++)
{
for(j=0;j<z;j++)
{
printf(" %d ",c[i][j]);
}
printf("\n");
}
}
if(l==4)
{
printf("\nENTER THE NO TO WHICH YOU WANT TO MUTILY MATRIX: ");
scanf("%d",&k);
printf("\nENTER 3*3 Matrix for scalar Multiplication by %d:\n",k);
for(i=0;i<z;i++)
{
for(j=0;j<z;j++)
{
printf("\nElement at %d*%d: ",i+1,j+1);
scanf("%d",&a[i][j]);
}
}
for(i=0;i<z;i++)
{
for(j=0;j<z;j++)
{
c[i][j]=0;
c[i][j]= k*a[i][j];
}
}
printf("\n FIRST MATIRX YOU ENTERED\n");
for(i=0;i<z;i++)
{
for(j=0;j<z;j++)
{
printf(" %d \t", a[i][j]);
}
printf("\n");
}
printf("\nRESULT =\n");
for(i=0;i<z;i++)
{
for(j=0;j<z;j++)
{
printf(" %d \t",c[i][j]);
}
printf("\n");
}
}
if(l==5)
{
printf("\nENTER THE NO TO WHICH YOU WANT TO taghsim MATRIX: ");
scanf("%d",&k);
printf("\nENTER m*m Matrix for taghsim Multiplication by %d:\n",k);
for(i=0;i<z;i++)
{
for(j=0;j<z;j++)
{
printf("\nElement at %d*%d: ",i+1,j+1);
scanf("%d",&a[i][j]);
}
}
for(i=0;i<z;i++)
{
for(j=0;j<z;j++)
{
c[i][j]=0;
mbavi[i][j]=0;
c[i][j]=(float)(a[i][j])/(float)k;
mbavi[i][j]=(float)c[i][j];
}
}
printf("\n FIRST MATIRX YOU ENTERED\n");
for(i=0;i<z;i++)
{
for(j=0;j<z;j++)
{
printf(" %d \t", a[i][j]);
}
printf("\n");
}
printf("\nRESULT =\n");
for(i=0;i<z;i++)
{
for(j=0;j<z;j++)
{
printf(" %f \t",mbavi[i][j]);
}
printf("\n");
}
}
if(l==6)
{
printf("\nENTER 3*3 Matrix for scalar jam ghotr");
for(i=0;i<z;i++)
{
for(j=0;j<z;j++)
{
printf("\nElement at %d*%d: ",i+1,j+1);
scanf("%d",&a[i][j]);
}
}
for(i=0;i<z;i++)
{
printf("a[%d][%d]=%d \t",i,i,a[i][i]);
printf("i=%d and z=%d\t",i,z);
jam+=a[i][i];
}
printf("%d",jam);
printf("\n FIRST MATIRX YOU ENTERED\n");
for(i=0;i<z;i++)
{
for(j=0;j<z;j++)
{
printf(" %d \t", a[i][j]);
}
printf("\n");
}
printf("\nRESULT =\n");
printf(" %d \t",jam);
printf("\n");
}
if(l==7)
{
printf("\nENTER the matrix you wish to inverted\n");
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
printf("\nElement at %d*%d: ",i+1,j+1);
scanf("%d",&a[i][j]);
}
}
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
c[i][j]=0;
c[0][0]=a[0][0];
c[0][1]=a[1][0];
c[0][2]=a[2][0];
c[1][0]=a[0][1];
c[1][1]=a[1][1];
c[1][2]=a[2][1];
c[2][0]=a[0][2];
c[2][1]=a[1][2];
c[2][2]=a[2][2];
}
}
printf("\nMATIRX YOU ENTERED\n");
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
printf(" %d \t", a[i][j]);
}
printf("\n");
}
printf("\nRESULT =\n");
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
printf(" %d \t",c[i][j]);
}
printf("\n");
}
}
if(l==8)
{
printf("\n\n\n THANKYOU VERY MUCH!!\n For Using MATRIX CALCULATOR");
}
if(l>=9)
{
printf("\n\n\n\n WARNING!\n YOU HAVE ENTERED AN INVALID ENTRY \n PLEASE SELECT A VALID ENTRY PRESS ENTER FOR ( OK )");
}
getch();
}
return 0 ;
}
/*___________________THE END_____________________*/
توی قسمت 5 ) عبارت c[i][j]=(float)(a[i][j])/(float)k; رو در نمایش آخر میخوام که اعشاری هم داشته باشه ولی هر کاری میکنم تقسیم صحیح میکنه
قسمت 6 ) جواب نهایی رو چرت و پرت میده
لطفا به من کمک کنید
با تشکر