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

Программирование на С++

Александр Профи (770), закрыт 1 год назад
Кто хорошо знает массивы, помогите пожалуйста, кто сколько может.
Тут можно пользовать всеми массивами, циклами, условными операторами, но нельзя использование любых других структур для хранения последовательностей данных, а также библиотечных функций (за исключением abs и swap).
Лучший ответ
Николай Веселуха Высший разум (361061) 1 год назад
1)
 #include  
#include
using namespace std;
int main() {
const size_t n = 11;
double box[n];
double a, b;
cin >> a >> b;
auto dx = fabs(a - b) / (n - 1);
auto x = a;
box[0] = x;
for (size_t i = 1; i < n; ++i) {
x += a < b ? dx : -dx;
if (fabs(x) < 1e-14) x = 0;
box[i] = x;
}
for (auto x : box) cout << x << ' ';
puts("");
}
2)
 #include  
using namespace std;
int main() {
const size_t n = 10000;
double box[n];
size_t m;
cin >> m;
for (size_t i = 0; i < m; ++i) cin >> box[i];
auto odd = 0.0;
auto even = 0.0;
for (size_t i = 0; i < m; ++i) {
(i & 1 ? odd : even) += box[i];
}
cout << even << ' ' << odd <<'\n';
puts("");
}
3)
 #include  
#include
using namespace std;
int main() {
const size_t n = 10000;
double x[n];
double y[n];
size_t m;
cin >> m;
for (size_t i = 0; i < m; ++i) cin >> x[i];
for (size_t i = 0; i < m; ++i) cin >> y[i];
auto s = 0.0;
for (size_t i = 0; i < m; ++i) s += x[i] * y[i];
auto sum = s / m;
cout << sum << '\n';
puts("");
}
4)
 #include  
#include
using namespace std;
int main() {
const size_t n = 10000;
double box[n];
double y[n];
size_t m;
cin >> m;
for (size_t i = 0; i < m; ++i) cin >> box[i];
for (size_t i = 0, j = 1; j < m; i += 2, j += 2) {
if (box[i] * box[j] < 0) swap(box[i], box[j]);
}
for (size_t i = 0; i < m; ++i) cout << box[i] << ' ';
puts("");
}
5)
 #include  
#include
using namespace std;
int main() {
const size_t n = 10000;
double box[n];
double y[n];
size_t m;
cin >> m;
for (size_t i = 0; i < m; ++i) cin >> box[i];
auto last = box[m - 1];
for (size_t i = m - 1, j = m - 2; i != 0; --i, --j) {
box[i] = box[j];
}
box[0] = last;
for (size_t i = 0; i < m; ++i) cout << box[i] << ' ';
puts("");
}
АлександрПрофи (770) 1 год назад
а что нужно сделать, что бы вторая программа работала и с дробными числами?
Николай Веселуха Высший разум (361061) Вторая программа может работать только с целыми числами и для этого её следует переписать следующим образом:
 #include   
using namespace std;  
int main() {  
    const size_t n = 10000;  
    int box[n];  
    size_t m;  
    cin >> m;  
    for (size_t i = 0; i < m; ++i) cin >> box[i];  
    auto odd = 0LL;  
    auto even = 0LL;  
    for (size_t i = 0; i < m; ++i) {  
        (i & 1 ? odd : even) += box[i];  
    }  
    cout << even << ' ' << odd <<'\n';  
    puts("");  
} 
Остальные ответы
Зло Просветленный (38821) 1 год назад
Первые две задачи не требуют массивов для решения
Похожие вопросы