не приходит:
у меня есть array of structs
Point p[5] = {{15, 1, 100, 23}, {15, 1, 99, 25}, {16, 1, 99, 26}, {16, 1, 99, 20}, {17, 1, 99, 20}};
нужно печатать значения в виде delta encoding, т.е. после первого массива пойдут уже не сами значения, а разница с предыдущими значениями
у меня тут все сделано через if else if else...
std::cout << p[0].flf << " ";
std::cout << p[0].fll << " ";
std::cout << p[0].rpm << " ";
std::cout << p[0].spd << std::endl;
for (int i = 1; i < 5; i++){
if (p[i].flf != p[i-1].flf){
std::cout << p[i].flf - p[i-1].flf << " ";
}
else {
std::cout << 0 << " ";
}
if (p[i].fll != p[i-1].fll){
std::cout << p[i].fll - p[i-1].fll << " ";
}
else {
std::cout << 0 << " ";
}
И так далее.
Если в Point будет увеличиваться количество перменных, то каждый раз придется удлиннять код. Но какая есть альтернатива? Ничего очевидного в голову не приходит😐
В функцию вынести эти проверки, нет?
Зачем здесь ветвление? Если поля равны, их разница будет 0
блиин, так и есть ( спасибо!
Обсуждают сегодня