私は代数アプリケーションに取り組んでいます。これがコードです
struct quotient
{
int numerator;
int denominator;
};
struct term
{
struct quotient coefficient;
char varname;
struct quotient power;
};
struct function
{
struct term* terms;
char* operators;
struct quotient coefficient;
struct quotient power;
};
//Constructor Functions
struct quotient NewQuotient()
{
struct quotient temp;
printf("Enter the numerator\n");
scanf("%d", &temp.numerator);
printf("Enter the denominator\n");
scanf("%d", &temp.denominator);
return temp;
}
char NewVarname()
{
char temp;
printf("Enter the variable letter: \n");
scanf("%c", &temp);
return temp;
}
struct term NewTerm()
{
//broken, won't let you enter a variable name, sets it to x by default until that's resolved
struct term temp;
printf("Enter the coefficient: ");
temp.coefficient = NewQuotient();
printf("Enter the variable name: \n");
temp.varname = NewVarname();
temp.varname = 'x';
printf("Enter the power: ");
temp.power = NewQuotient();
return temp;
}
void NewFunction(struct function* func, int size)
{
//so far so good
unsigned i;
func->terms = (struct term*)calloc(size, sizeof(struct term));
//loop to initialize each term
for(i = 0; i < size; i++)
{
func->terms[i] = NewTerm();
}
return;
}
int main(){
struct function fofx;
NewFunction(&fofx, 2);
DisplayFunction(&fofx, 2);
DeleteFunction(&fofx);
return 0;
}
出力は次のとおりです。
分子を入力してください:
1分母を入力してください
:
2
分子を入力してください:
3分母を
入力してください:
4
....
など、ループの最後まで。
NewTerm のステートメントの半分はまったく実行されていないように見えますが、プログラムは新しい関数の割り当てと初期化に成功しているようです。どんな助けでも大歓迎です、私はこれについて非常に混乱しています。表示機能と削除機能は含めませんでしたが、問題なく動作しますが、役立つ場合はここに追加できます。