Андрей
Высший разум
(483074)
3 года назад
Присваивание - это копирование значения, которое переменная имеет ЗДЕСЬ и СЕЙЧАС, а не того значения, которое будет у переменной в будущем - несколькими строками кода ниже.
Ты присваиваешь значения переменным q и w. И НЕ присваиваешь значения переменным a, s, s1, a1, z. Т. е. внутри себя переменные a, s, s1, a1, z содержат какой-то неизвестный мусор.
Потом ты хочешь присвоить значения переменных a1, a, s элементам массива z. Но значения переменным a1, a, s НЕ присвоены. Вот компилятор и ругается.
Ты должен СНАЧАЛА вычислить значения переменных блоком кода:
s = -fmod(q, w);
s1 = q / w;
a = -fmod(s1, w);
a1 = q / w / w;
А только ПОТОМ присваивать вычисленные значения элементам массива z.
Но конструкция printf("%d",z); делает совсем не то, что ты думаешь: она напечатает десятичный АДРЕС начала массива z.
вася МкатырУченик (4)
3 года назад
а спасибо, а можете подсказать как сразу все значения в массиве вывести через printf?
#include
int main()
{
short q = -0x5B4, w = 21, a, s, s1, a1, z[3]; z[0] = a1, z[1] = a, z[2] = s;
s = -fmod(q, w);
s1 = q / w;
a = -fmod(s1, w);
a1 = q / w / w;
printf("%d",z);
}
вот код мне нужно соединить число из а1 а s, хочу соединить в массиве, но когда присваиваю значение переменной выводит ошибка что эти переменные (а1 а s) не инциированы почему? можете объяснить как загнать значение переменной в массив ?