Ошибка при использовании структур - 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.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д