ユーザー入力からax + by + cz = dとしていくつかの方程式(1〜3)を取り、行列式を計算して行列とBベクトルを見つけるように求める割り当てがあります。方程式の数はすでに定義されています。 1から3の間ですが、入力からa、b、cを取得して、それを行列に入れる方法がわかりません。どうすればそのような入力をユーザーから取得できますか?出力は次のようになります
これはコードではなく、Cで実装する方法についての簡単なアイデアであることに注意してください。
あなたのアプローチは以下の通りでなければなりません:
1)方程式の数をユーザーに尋ねます。
scanf("%d", &no_of_equations);
2)方程式変数を入力するようにユーザーに依頼します。
char var[no_of_equations];
for (i = 0; i < no_of_equations; ++i)
scanf("%c", &var[i])
3)mallocを使用して2次元配列(行列)を割り当てます(係数の数は方程式の数と同じです)
int *arr[no_of_equations];
for (i=0; i<no_of_equations; i++)
arr[i] = (int *)malloc(c * sizeof(int));
4)方程式を入力として受け取り、文字列操作を使用します。
char* equations[no_of_equations];
for (i=0; i<no_of_equations; i++)
equations[i] = (char *)malloc(MAX_SIZE * sizeof(char));
for (j = 0; equations[i][j] != '\0'; j++) {
for (k = 0; k < no_of_equations; k++) {
if (equations[i][j] == var[k]) {
arr[i][k] = equations[i][j-1]; // Storing coefficient corresponding to kth coefficient for ith equation
}
アルゴリズムはO(n ^ 3)を取ります。どんな改善でも大歓迎です。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加