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

Оптимальное заполнение или "Халява" - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ дата http://www.cyberforum.ru/cpp-beginners/thread435250.html
Ввести (с клавиатуры) дату в формате ДД.ММ,ГГГГ и вывести на экран дату следующего дня (используются операторы *Условия выбора и циклы*-по заданию) заранее спасибо очень тяжело Си дается
C++ Аварийное завершение... почему? Код рабочий, но если элементов больше 4, тогда программа аварийно завершает работу, почему? #include <iostream> using namespace std; string Read(string Mass, int size){for(int i=0;i<size;i++){cout<<">"<<Mass<<endl;}} int main() { //string List={"one","two","three","four","five"}; string List={"one","two","three","four"}; http://www.cyberforum.ru/cpp-beginners/thread435243.html
C++ Решение задачи
Как решить задачу: поменять местами второй четный со вторым нечетным в одномерном массиве
C++ Поиск k-ого наименьшего элемента
Друзья есть код на паскале, нужно переписать на с++. Это алгоритм поиска к-го наименьшего элемента. У меня получается криво, с ошибками. procedure Find(k: integer); var L,R,i,j: integer; w,x: integer; begin L:=1; R:=N; while L<R-1 do begin
C++ Замена слов в строке http://www.cyberforum.ru/cpp-beginners/thread435213.html
Добрый вечер. Помогите, пожалуйста советом или кодом: требуется полученную строку изменить так, чтобы первое и среднее слово поменялись местами. void f(char *s) { int len=strlen(s); int na4slovo1=0,konezslovo1=0,na4slovo2=0,konezslovo2=0,kolslov=0; for(int k=0;k<len;k++) { if(s==' ' && s!=' ') //нашли количество слов kolslov++;
C++ зеркальное отображение в С Дана задача сделать зеркальное отображение двумерного массива M*N Нужно поменять 1-ый с последним, 2-ой с предпоследним и т.д. подробнее

Показать сообщение отдельно
Toshkarik
 Аватар для Toshkarik
1139 / 856 / 50
Регистрация: 03.08.2011
Сообщений: 2,381
Завершенные тесты: 1
20.05.2012, 20:06     Оптимальное заполнение или "Халява"
Да я заметил, поспешил, не доделал. Сейчас по Вашему варианту выдает правильный ответ, а вот если вбить 0 4 2 7 то уже нет
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
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
int main() {
   std::size_t A = 0,
               B = 0,
               C = 0,
               k = 0,
               shirt = 0,
               cCount = 0,
               bCount = 0,
               temp = 0;
   
   std::ifstream inFile( "INPUT.TXT", std::ios::in );
   std::ofstream outFile( "OUTPUT.TXT", std::ios::out );
   
   inFile >> A >> B >> C >> k;
 
   if ( k == 1 ) {
      outFile << ( A + B + C );
      return 0;
   }
   
   if ( k == 2 ) {
      outFile << ( B + C + ( A / 2 ));
      return 0;
   }
   
   cCount = k / 3;
   bCount = k / 2;
   
   if ( k % 3 == 0 ) {
      temp = C / cCount;
      shirt += temp;
      C -= temp * cCount;
      
      if ( A >= B / bCount ) {
         temp = B / bCount;
         shirt += temp;
         B -= temp * bCount;
         A -= temp;
         
         temp = A / k;
         shirt += temp;
         A -= temp * k;
      } else {
         shirt += A;
         B -= bCount * A;
         A = 0;
         
         temp = B / ( bCount + 1 );
         shirt += temp;
         B -= temp * ( bCount + 1 );
      }
   } else if ( k % 3 == 1 ) {
      B += A / 2;
      A = ( A & 1 );
      
      if ( B >= C / cCount ) {
         temp = C / cCount;
         shirt += temp;
         B -= temp;
         C -= temp * cCount;
         
         temp = B / ( bCount + 1 );
         shirt += temp;
         B -= temp * ( bCount + 1 );
      } else {
         temp = C / cCount;
         shirt += B;
         C -= temp * B;
         B = 0;
         
         temp = C / ( cCount + 1 );
         shirt += temp;
         C -= temp * ( cCount + 1 );
      }
   } else {
      if ( A >= C / cCount ) {
         temp = C / cCount;
         shirt += temp;
         A -= temp;
         C -= temp * cCount;
 
         if ( A >= B / bCount ) {
            temp = B / bCount;
            shirt += temp;
            B -= temp * bCount;
            A -= temp;
 
            temp = A / k;
            shirt += temp;
            A -= temp * k;
         } else {
            shirt += A;
            B -= bCount * A;
            A = 0;
 
            temp = B / ( bCount + 1 );
            shirt += temp;
            B -= temp * ( bCount + 1 );
         }
      } else {
         temp = C / cCount;
         shirt += A;
         A = 0;
         C -= temp * A;
         A = 0;
 
         if ( B >= C / cCount ) {
            temp = C / cCount;
            shirt += temp;
            B -= temp;
            C -= temp * cCount;
 
            temp = B / ( bCount + 1 );
            shirt += temp;
            B -= temp * ( bCount + 1 );
         } else {
            temp = C / cCount;
            shirt += B;
            C -= temp * B;
            B = 0;
 
            temp = C / ( cCount + 1 );
            shirt += temp;
            C -= temp * ( cCount + 1 );
         }
      }
   }
   
   if ( A + B * 2 + C * 3 >= k )
      shirt++;
   
   outFile << shirt;
   
   return 0;
}
 
Текущее время: 03:58. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru