Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Как задать правильно значение переменной В СИ

вася Мкатыр Ученик (4), закрыт 3 года назад
#include
#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) не инциированы почему? можете объяснить как загнать значение переменной в массив ?
Лучший ответ
Андрей Высший разум (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?
Андрей Высший разум (483074) вася Мкатыр, Либо руками: printf("%d %d %d", z[0], z[1], z[2]); Либо в цикле: for (int i = 0; i < 3; ++i) { printf("%d ", z[i]); } Специальной конструкции для вывода массива в языке C нет.
Остальные ответы
Серый Верный Профи (765) 3 года назад
Если переменной надо присвоить значение, используй бинарный "=", если, добавить, "+=" или вычесть "-="
АндрейВысший разум (483074) 3 года назад
А ещё ты забыл: *=, /=, %=, >>=, <<=, &=, |=, ^=
Похожие вопросы