Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
sSTUDENTUSs
-10 / 1 / 2
Регистрация: 05.10.2014
Сообщений: 26
1

Ошибка при использовании структур

18.11.2014, 20:23. Просмотров 867. Ответов 3
Метки нет (Все метки)

Мне задали очень странное дополнительное задание. Организовать многочлены, с которыми я оперирую в программе, в структуры. Конечно, это совершенно необязательно в моем алгоритме, тем не менее, сделав структуры, у меня выводятся странные ошибки, точнее ошибка.
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
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", &degree);
 
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);
}
}
C
1
error: subscripted value is neither array nor pointer nor vector
Что вы можете сказать по этому поводу?
0
Лучшие ответы (1)
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.11.2014, 20:23
Ответы с готовыми решениями:

Ошибка при использовании Clrscr
#include &lt;stdio.h&gt; #include &lt;math.h&gt; #include&lt;iostream&gt; double SumD(int a) { double s=a;...

Ошибка при использовании strlen
scanf(&quot;%s&quot;,&amp;s); d=strlen(s); чего ошибка?

Ошибка при использовании указателей
Задание Составить программу, которая заполняет массив случайными целыми числами из диапазона,...

Ошибка при использовании delete
#include &lt;iostream&gt; #include &lt;stdio.h&gt; using namespace std; void main() { char *ar=new...

Ошибка при при использовании realloc
В методе AddItem вылетает ошибка доступа к памяти... С чем это может быть связано? #pragma...

3
deepz
62 / 62 / 53
Регистрация: 04.10.2013
Сообщений: 263
18.11.2014, 22:22 2
что такое MAX? и числа таким способом не инициализируются
C
1
2
                degree[MAX];
                float P[MAX]
0
TheCalligrapher
С чаем беда...
Эксперт CЭксперт С++
5983 / 2889 / 788
Регистрация: 18.10.2014
Сообщений: 5,289
18.11.2014, 23:47 3
Лучший ответ Сообщение было отмечено sSTUDENTUSs как решение

Решение

Так а что это за бредятина

Цитата Сообщение от sSTUDENTUSs Посмотреть сообщение
scanf("%f", &wrong[i].P);
Как ясно сказал компилятор, 'wrong' не является ни массивом, ни указателем. Почему вы пытаетесь писать 'wrong[i].P'? Что это значит? Что вы хотели этим сказать?

Может имелось в виду 'wrong.P[i]'?

Аналогичная белиберда имеет место в огромном количестве с доступом и ко всем остальным структурам.

Цитата Сообщение от sSTUDENTUSs Посмотреть сообщение
void main(void)
int main(void)

Цитата Сообщение от sSTUDENTUSs Посмотреть сообщение
C
1
2
3
4
struct residue  {
  degree[MAX];
  float P[MAX];
};
А куда пропал тип для 'degree'???
1
sSTUDENTUSs
-10 / 1 / 2
Регистрация: 05.10.2014
Сообщений: 26
19.11.2014, 09:19  [ТС] 4
В общем то я разобрался, спасибо. Билибирда она конечно да, запутался я с массивами структур, извиняюсь.
0
19.11.2014, 09:19
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.11.2014, 09:19

Ошибка при использовании аргумента по умолчанию
Не пойму, почему ошибка? #include &lt;stdio.h&gt; int arav(int amount=5) { return ++amount; }...

Ошибка при использовании пользовательской библиотеки
Уважаемые программисты, помогите найти причину ошибки! float a,b,c; int i,n,j; ...

Ошибка при использовании аргументов командной строки
Доброго времени суток. Решил в маленькую программу, для перевода чисел, добавить работу с...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.