Форум программистов, компьютерный форум CyberForum.ru

Необходимо разбить камни на две кучи таким образом, чтобы веса куч отличались не более чем в 1.5 раза. - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Классы, наследование, порядок вызова конструкторов http://www.cyberforum.ru/cpp-beginners/thread269792.html
допустим у меня эсть два класса class a { publc: char *n; a() { n= new char ; } ~a()
C++ Составить программу проверки, является ли многоугольник «звездным». Ограниченный невыпуклый многоугольник на плоскости задан координатами своих вершин, перечисленных в порядке обхода контура многоугольника по часовой стрелке. ( Многоугольник называется звездным, если существует точка, для которой любой отрезок, соединяющий ее с произвольной точкой контура многоугольника, целиком принадлежит этому многоугольнику.) http://www.cyberforum.ru/cpp-beginners/thread269789.html
Решение интеграла, метод средних прямоугольников C++
Здравствуйте, подскажите где я допустил ошибку в программе. результат не сходится с mathcad. определенный интеграл от 0 до pi sin(cos(2*x+1))dx в mathcad 1.227*10^-11 в си 0.078 // 3.cpp : Defines the entry point for the console application. //
упорядочить матрицу C++
Доброе Утро! Я совсем недавно начал осваивать С++, поэтому если не сложно помогите с заданием. Нужно упорядочить строки матрицы NxM по возрастанию их найбольших элементов.
C++ Перевод с С в Паскаль. Абрамов.388 http://www.cyberforum.ru/cpp-beginners/thread269768.html
#include<stdio.h> #include<time.h> #include<stdlib.h> void main() { const n = 17; srand(time(0)); int i,j,max, a;
C++ Математические функции. 1. Математические функции: http://s52.***********/i138/1104/0a/1f649cdc2c96.jpg 2. Алгоритмы ветвления: Написать программу, которая проверяет является ли кратным трем разница двух чисел. 3. Программирование циклических алгоритмов: Даны натуральное число N и вещественное f. Вычислить: http://s13.***********/i186/1104/e7/f6e0e5adade6.jpg 4. Программирование вложенных циклов: подробнее

Показать сообщение отдельно
IrineK
Заблокирован
04.04.2011, 13:00
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
60
61
62
#include <iostream>
#define N 10
using namespace std;
 
void create_lot(int stones[]) //создание массива весов камней
{
    cout<<N<<" камней в куче. Их вес:\n";
    for(int i=0;i<N;i++)
    {cout<<(i+1)<<": ";
    cin>>stones[i];}
}
 
void arrange_lot(int stones[]) //сортировка по убыванию
{
int i,j,cur;
for(i=0;i<N-1;i++)
    for(j=i+1;j<N;j++)
        if(stones[i]<stones[j])
        {   cur=stones[i];
            stones[i]=stones[j];
            stones[j]=cur;  }
}
 
void arrange_bags(int stones[]) //создание двух куч, как можно более близких по весу
{
int sum1=0, sum2=0, k1=0, k2=0, i;
int bag1[N-1],bag2[N-1];
for(i=0;i<N;i++)
{
    if(sum1<=sum2)
    {   bag1[k1]=stones[i];
        sum1+=stones[i];
        k1++;}
    else
    {   bag2[k2]=stones[i];
        sum2+=stones[i];
        k2++;}
}
if(1.0*sum1/sum2 <=1.5)
{   cout<<"\nКуча 1: ";
    for(i=0;i<k1;i++)
        cout<<bag1[i]<<"  ";
    cout<<"\nВес 1: "<<sum1<<endl;
    cout<<"\nКуча 2: ";
    for(i=0;i<k2;i++)
        cout<<bag2[i]<<"  ";
    cout<<"\nВес 2: "<<sum2<<endl;
}
else cout<<"Вес различается больше чем в 1,5 раза\n";
}
 
int main()
{
    setlocale(LC_ALL,"");
    int lot[N];
    create_lot(lot);
    arrange_lot(lot);
    arrange_bags(lot);
 
    cin.sync(); cin.get();
    return 0;
}
Миниатюры
Необходимо разбить камни на две кучи таким образом, чтобы веса куч отличались не более чем в 1.5 раза.  
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru