Programlama ve C++ için çok yeni ve bir sistemi çözmek için Cramer kuralını kullanmam gereken bir atamam var . Her şey yolundaydı ve işe yaradı, ama fonksiyonları daha iyi kullanmak zorundaydım. İşlevleri kullandığım her defasında, dönüştürme hatalarıyla karşılaşıyorum, genellikle bunu çözebilirim, ancak "satırı 51 hatası diyerek bir hata oluştu: '1' - 'argümanı için' uzun çift '-' uzun çift * 'dönüştüremiyor uzun çift Cramer_3x3 (uzun çift *, uzun çift (*) [3], int) '".C++ 'uzun' çiftini '1' - 'uzun' için '1' 'uzun' için '' dönüştüremiyor '' uzun
#include <iostream>
using namespace std;
long double Determinant_3x3(long double matrix_3x3[3][3])
{
long double determinant;
determinant = matrix_3x3[0][0] * matrix_3x3[1][1] * matrix_3x3[2][2] + matrix_3x3[0][1] * matrix_3x3[1][2] * matrix_3x3[2][0] + matrix_3x3[0][2] * matrix_3x3[1][0] * matrix_3x3[2][1] - matrix_3x3[0][2] * matrix_3x3[1][1] * matrix_3x3[2][0] - matrix_3x3[0][1] * matrix_3x3[1][0] * matrix_3x3[2][2] - matrix_3x3[0][0] * matrix_3x3[1][2] * matrix_3x3[2][1];
return determinant;
}
long double Cramer_3x3(long double d[3], long double matrix_3x3[3][3], int step)
{
long double result;
if(step == 0){
long double matrix_3x3d[3][3] = {d[0], matrix_3x3[0][1], matrix_3x3[0][2], d[1], matrix_3x3[1][1], matrix_3x3[1][2], d[2], matrix_3x3[2][1], matrix_3x3[2][2]};
result = Determinant_3x3(matrix_3x3d)/Determinant_3x3(matrix_3x3);
}
else if(step == 1){
long double matrix_3x3d[3][3] = {matrix_3x3[0][0], d[0], matrix_3x3[0][2], matrix_3x3[1][0], d[1], matrix_3x3[1][2], matrix_3x3[2][0], d[2], matrix_3x3[2][2]};
result = Determinant_3x3(matrix_3x3d)/Determinant_3x3(matrix_3x3);
}
else{
long double matrix_3x3d[3][3] = {matrix_3x3[0][0], matrix_3x3[0][1], d[0], matrix_3x3[1][0], matrix_3x3[1][1], d[1], matrix_3x3[2][0], matrix_3x3[2][1], d[2]};
result = Determinant_3x3(matrix_3x3d)/Determinant_3x3(matrix_3x3);
}
return result;
}
int main()
{
long double d[3], matrix_3x3[3][3], result[3];
cout << "Voer een 3x3 matrix in.\n";
for(int i = 0; i < 3; i++){
for(int j = 0; j < 3; j++){
cin >> matrix_3x3[i][j];
}
}
cout << "Voer d1, d2 en d3 in.\n";
for(int k = 0; k < 3; k++){
cin >> d[k];
result[k] = Cramer_3x3(d[3], matrix_3x3[3][3], k); //line 51, where the error happens
}
cout << "Het ingevoerde stelsel ziet er zo uit.\n" << matrix_3x3[0][0] << "x + " << matrix_3x3[0][1] << "y + " << matrix_3x3[0][2] << "z = " << d[0] << endl << matrix_3x3[1][0] << "x + " << matrix_3x3[1][1] << "y + " << matrix_3x3[1][2] << "z = " << d[1] << endl << matrix_3x3[2][0] << "x + " << matrix_3x3[2][1] << "y + " << matrix_3x3[2][2] << "z = " << d[2] << endl << "x = " << result[0] << "\ny = " << result[1] << "\nz = " << result[2] << endl;
return 0;
}
Ben GNU GCC derleyicisi kullanıyorum:
İşte benim kodudur.
Yardımı büyük bir memnuniyetle karşılayacağım, benzer sorulara baktım ama çok yardımcı olmadı.
Kişisel hata mesajı bir yere anlatıyorsun söylüyor 'long double' bir' işaretçiye * 'uzun double' dönüştürmek için derleyici. Bu bir yerlerde bir yazım hatası olabilir. –