私はBabbageの差分マシンをC言語で動かそうとしています。私は概念の基本的な考え方をすべて書いています。たとえば、10の正方形を見つけようとすると、これはBabbageの機械がどのように働くかである。 私のプログラムでは、整数のリストを持っており、私たちはすでにこれらの整数の2乗を前提としています。この情報を与えると、乗算を行わずに正の整数の2乗を計算することができなければなりません。else文はC言語で動作します
しかし、コードはif-elseステートメントのelse部分を実行しません。しかし、 "else"文ですべてを削除してprintf関数を書いただけでは、条件がうまくいきませんでした。
else文で何か間違っている必要があります。配列に項目を追加するのは間違っていますか? CのIf-Elseステートメントにループを書くことは許されていませんか?私はPythonで同じアルゴリズムを書いて、うまくいきます!
ps:私はもう "else"パートの代わりにdo-whileを書きました。
助けてください、おかげで事前
#include<stdio.h>
int main(){
int integers[] = {0,1,2};
int sq_of_integers[] = {0,1,4};
int first_differences[] = {1,3};
int second_difference[] = {2};
int input;
int i;
int x;
int end2 = 2;
int end1 = 1;
for (i = 0 ; i<=2 ; i++){
printf("Enter a number to be squared: ");
scanf(" %d", &input);
if (input <= integers[end2]){
printf("It is already known, sir.\n");
}else{
for(x = 0 ; x<= input - integers[-1] ; x++){
// Calculation of the square root:
integers[end2+1] = integers[end2]+1;
sq_of_integers[end2+1] = second_difference[0] + first_differences[end1] + sq_of_integers[end2];
first_differences[end1+1] = sq_of_integers[end2] +sq_of_integers[-2];
printf(sq_of_integers[end2]);
end2 = end2 + 1;
end1 = end1 + 1;
}
}
}
return 0;
}
''整数[-1] '' ????? – BitTickler
インデックスはゼロから始まるので、 '-1'は無効です – Andrew
私はここにPythonの人間がいると思います.. –