Thanks for your help, sorry to have bothjered you. Just one last question.

Is this along the right lines?

Code:void scaling (double line[][3]) { //double a=0; double s; double new_line2[2][3]; printf("\nHow much would you like to scale the line by?\nEnter a value between 0 and 1:"); scanf("%lf", &s); int scaling_matrix[3][3] = { {s, 0, 0}, {0, s, 0}, {0, 0, s} }; //scaling_matrix[0][0]=s; //scaling_matrix[1][0]=0; //scaling_matrix[2][0]=0; //scaling_matrix[0][1]=0; //scaling_matrix[1][1]=s; //scaling_matrix[2][1]=0; //scaling_matrix[0][2]=0; //scaling_matrix[1][2]=0; //scaling_matrix[2][2]=s; scaling_multiplication(line, scaling_matrix, new_line2); printf("\nThe new start coordinates are: (%lf,%lf,%lf)", new_line2[0][0], new_line2[0][1], new_line2[0][2]); printf("\nThe new end coordinates are: (%lf,%lf,%lf)", new_line2[1][0], new_line2[1][1], new_line2[1][2]); } void scaling_multiplication (double a[][3], double b[][3], double F[][3]) { //F[0][0]=D[0][0]*E[0][0]; //F[0][1]=D[1][0]*E[0][1]; //F[0][2]=D[2][0]*E[0][2]; //F[1][0]=D[0][1]*E[1][0]; //F[1][1]=D[1][1]*E[1][1]; //F[1][2]=D[2][3]*E[1][2]; int i, j, k; for(i=0; i<3; i++) { for(j=0; j<3; j++) { for(k=0; k<3; k++) { F[i][j] = a[i][k] + b[k][j]; } } } }