Ошибка при использовании структур - C (СИ)
Формулировка задачи:
Мне задали очень странное дополнительное задание. Организовать многочлены, с которыми я оперирую в программе, в структуры. Конечно, это совершенно необязательно в моем алгоритме, тем не менее, сделав структуры, у меня выводятся странные ошибки, точнее ошибка.
Что вы можете сказать по этому поводу?
void main(void)
{
struct quotient {
int degree[MAX];
float S[MAX]; };
struct XYZ {
int degree[MAX];
float Q[MAX];
};
struct residue {
degree[MAX];
float P[MAX];
};
struct quotient some;
struct XYZ thing;
struct residue wrong;
int degree;
int n, i;
float M;
printf("enter degree\n");
scanf("%d", °ree);
printf("enter k\n");
for (i=0; i<=(degree); i++)
{
scanf("%f", &wrong[i].P);
}
for(i=0; i<=(degree-1); i++)
{
M=wrong[i].P;
thing[i].Q=(degree-i)*M;
}
for(i=0; i<=(degree-2); i++)
{M=thing[i].Q;
thing[i].Q=((float)(degree-i))*thing[i].Q;
}
thing[degree-1].Q=0;
int j;
for (i=0; i<=(degree); i++) some[i].S=0;
for(i=0; i<3; i++)
{
some[i].S=wrong[i].P/thing[0].Q;
for(j=0; j<=(degree-2); j++)
wrong[i+j].P-=some[i].S*thing[j].Q;
}
for(i=(degree-2); i<=degree; i++)
{
printf("%f ", wrong[i].P);
}
}error: subscripted value is neither array nor pointer nor vector
Решение задачи: «Ошибка при использовании структур»
textual
Листинг программы
struct residue {
degree[MAX];
float P[MAX];
};
Объяснение кода листинга программы
- Объявляется структура residue.
- В структуре residue есть два поля: degree и P.
- Тип данных поля degree - массив целых чисел.
- Тип данных поля P - массив чисел с плавающей точкой.
- Размер массива MAX не определен, но предполагается, что он больше нуля.
- Не объявлены переменные для хранения значений структуры residue.