Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Другие темы раздела
C (СИ) Есть код. Создайте пожалуйста многофайловый проект Задача, которая задана в индивидуальном задании должна быть реализована в виде отдельной функции (или функций) и размещаться в отдельном файле (или файлах). Функция main должна демонстрировать... https://www.cyberforum.ru/ c-beginners/ thread1057218.html Вылетает ошибка при вызове malloc C (СИ)
Есть такой код: FILE *file; struct Student *students = 0; struct Student student; struct Exam *exams; struct Exam exam; int *size, *temp; int i = 0, j = 0, k = 0;
C (СИ) Алгоритм Дейкстры Здравствуйте! Необходимо реализовать алгоритм Дейкстры на языке C. В учебнике вот такой фрагмент (не знаю даже на каком языке, на Паскаль похоже), суть я понимаю, но возникают проблемы с... https://www.cyberforum.ru/ c-beginners/ thread1057168.html C (СИ) ввести строку https://www.cyberforum.ru/ c-beginners/ thread1057165.html
Ввести строку. Вывести её, удалив предварительно повторяющиеся слова.
Работа в трехмерном массиве C (СИ)
Помогите создать программу,которая состоит из поиска числа который чаще всего повторяеться и вывести его на экран.....Использывая трехмерный массив.Числа рандомные в диапозоне от до 100. Добавлено...
C (СИ) Не могу понять что делает программа Не могу понять что делает программа void main() { char stroka; int n; puts("введите строку"); gets(stroka); for(n=strlen(stroka)-1;n>=0;n--) if(stroka!=' ' &&... https://www.cyberforum.ru/ c-beginners/ thread1057108.html
C (СИ) Ассемблерные вставки: чистый Си, CodeBlocks https://www.cyberforum.ru/ c-beginners/ thread1057079.html
Работаю в CodeBlocks, под Windows, компилятор mingw (это версия gcc для Wondows). В программе на чистом Си делаю ассемблерную вставку, причем в одном месте нужно передать в регистр AL значение...
Заполнить двумерный массив змейкой C (СИ)
120 ... ... 24 1 119 ... ... ... 2 118... ... ... 3 117... ... ... 4 15 14 108... ... 13 12 массив 12х10
C (СИ) Построить дуболомов в одну шеренгу но так, чтобы они опять были расположены по росту от самого высокого к самому низкому Помогите решить задачу. Имя входного файла: merge.dat Имя выходного файла: merge.sol Ограничение времени: 1 с Ограничение памяти: 64 M DOC-file Капрал Арум столкнулся с неразрешимой для... https://www.cyberforum.ru/ c-beginners/ thread1057010.html C (СИ) Рекурсивные функции Используя рекурсивную функцию, составить программу определения результата сравнения сумм четных и нечетных чисел. Прошу помочь с решением данной задачи, заранее спасибо! https://www.cyberforum.ru/ c-beginners/ thread1057008.html
Вывести на экран фамилии студентов в порядке увеличения их суммарного числа прогулов C (СИ)
1. В деканате составлена ведомость , в которой указаны фамилия студентов, название предметов и количество прогулов по каждому предмету. Вывести на экран фамилии студентов в порядке увеличения их...
C (СИ) Составить структурную блок схему https://www.cyberforum.ru/ c-beginners/ thread1056933.html
Не могу составить блок схему по заданию-Дан текст произвольной длины, оканчивающийся точкой с запятой. Подсчитать количество цифр в тексте.Помогите пожалуйста. #include <stdio.h> main() ...
6 / 7 / 4
Регистрация: 17.09.2013
Сообщений: 337
0

Весы - C (СИ) - Ответ 5562114

26.12.2013, 12:19. Показов 944. Ответов 0
Метки (Все метки)

Помогите решить задачу.
Имя входного файла: sum.dat
Имя выходного файла: sum.sol
Ограничение времени: 1 с
Ограничение памяти: 64 M


DOC-file

После того, как Урфин Джюс овладел Изумрудным городом, у него появилось любимое занятие — взвешивание изумрудов. Для этого у него есть чашечные весы и набор из N гирь. На одну чашу весов Урфин кладет изумруд, а на другую — некоторые гири из набора так, чтобы чаши уравновесились.

К сожалению, набор гирь у Урфина таков, что ему удается взвесить далеко не все изумруды, которые у него есть. Один из таких изумрудов он решил подарить мудрому филину Гуамоко. Естественно, Урфин хочет отдать Гуамоко самый легкий из тех изумрудов, вес которых он не может определить с помощью своего набора гирь.

Определите, какого веса изумруд получит мудрый филин Гуамоко.
Формат входного файла sum.dat

Текстовый файл sum.dat состоит из двух строк. В первой строке записано натуральное число N — количество гирь, которые есть у Урфина Джюса (1 ≤ N ≤ 50).

В следующей строке через пробел записаны N натуральных чисел - веса гирь. Веса лежат в диапазоне от 1 до 1 000 000 000.

Вес любого изумруда не меньше 1.
Формат выходного файла sum.sol

Текстовый файл sum.sol должен содержать единственное число — минимальный вес, который нельзя уравновесить с помощью гирь из заданного набора.
Программа выглядит так.
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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
#include <iostream>
#include <stdio.h>
 
using namespace std;
 
#define maxn 100
 
int a[maxn];
 
int n;
int pr = 0;
 
void merge(int l, int r) {
    if (r == l)
        return;
    if (r - l == 1) { 
        if (a[r] < a[l])
            swap(a[r], a[l]);
        return;
    }
    int m = (r + l) / 2;
    merge(l, m);
    merge(m + 1, r);
    int buf[maxn];
    int xl = l;
    int xr = m + 1;
    int cur = 0;
    while (r - l + 1 != cur) {
        if (xl > m) {
            buf[cur++] = a[xr++];
            pr++;
            }
        else if (xr > r) {
            buf[cur++] = a[xl++];
            pr++;
            }
        else if (a[xl] > a[xr]) {
            buf[cur++] = a[xr++];
            pr++;
            }
        else {
             buf[cur++] = a[xl++];
             pr++;
             }
 
    }
    for (int i = 0; i < cur; i++)
        a[i + l] = buf[i];
}
 
int main() {
    
     int N, i, j, mn = 0, pr = 0, c = 0;
    FILE *fp, *np;
    fp = fopen("sum.dat", "r");
    np = fopen("sum.sol", "w");
    /*scanf("%d", &N);
    for(i = 0; i < N; i++) {
        scanf("%d", &a[i]);
    }*/
    fscanf(fp, "%d", &N);
    for(i = 0; i < N; i++) {
        fscanf(fp, "%d", &a[i]);
    }
    merge(0, N - 1);
while(mn == 0) {
    pr++;
    mn = pr;
    for(i = N - 1; i >= 0; i--) {
        if(mn >= a[i]) {
            mn = mn - a[i];
        }
    }
}
fprintf(np, "%d\n", pr);
/*printf("%d\n", pr);*/
fclose(fp);
fclose(np);
    /*cin >> n;
 
    for (int i = 0; i < n; i++)
        cin >> a[i];
 
    merge(0, n - 1);
 
    for (int i = 0; i < n; i++)
        cout << a[i] << " ";
        cout << pr << "\n";*/
    return 0;
}


Вернуться к обсуждению:
Весы C (СИ)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.12.2013, 12:19
Готовые ответы и решения:

Весы
Напишите класс Balance для описания весов с двумя чашами. На левую и правую чашу объекта будут...

Электронные весы
Неплохие задачи по С++! Подзабыл его( выручайте, буду очень благодарен 4. Ваша задача - грамотно...

Нарисовать весы
помогите нарисовать! вообще не умею и не понимаю как это делать( рисунок не идеальный но...

Весы на iPhone с 3D Touch
Здравствуйте. Как реализовать весы на iPhone с 3D Touch на веб сайте?

0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.12.2013, 12:19
Помогаю со студенческими работами здесь

Напольные весы на ATmega8
У меня курсовой проект по микропроцессорам на тему электронные напольные весы с индикатором с...

Графика. Анимированные весы
При выполнении программы возникают дефекты по ходу движения фигур. Конкретно, чашечки весов...

Нарисовать весы с чашами
помогите зделать работу проболел половину пришёл на пары и ничего не понимаю... -_- Нужно сделать...

Весы CAS AD и распиновка
Добрый день коллеги! Прошу помочь, Первый раз этим занимаюсь, а очень надо! Есть распиновка для...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru