Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Задачи по C/С++

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389

Открыть новую тему     Написать ответ в эту тему

de_lirium

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Тема создана для накопления реализаций типовых задач на С/С++.
Прежде чем публиковать своё условие задачи, убедитесь, что её решение (или решение очень похожей задачи) в теме и полезных ссылках отсутствует (например воспользуйтесь ссылкой Версия для печати вверху справа страницы и поищите в ней).
Постарайтесь как можно полнее сформулировать постановку задачи (чтобы тому, кто решит вам помочь, не приходилось тратить своё время ещё и на выпытывание у вас деталей условия; если вам не понятно, как это сделать - постарайтесь представить, что эта программа у вас уже есть, и "поработать" с ней - вот все детали, которые при этом придут в голову, с большой вероятностью должны быть в условии задачи).
Если вы уже пытались сделать эту задачу, но у вас не получилось и вы хотите довести дело до конца - обязательно выложите результат своей попытки, предварительно убедившись, что ваш код компилируется.

Вопросы по технологиям лучше задавать тут.

Прежде чем просить помощи в задании...
Если позарез надо и вы даже готовы заплатить

Если вам вдруг не отвечают или ответ вас не устраивает, и вообще полезно прочитать всем спрашивающим.

Полезные ссылки:
 
C++: в том числе и решения задач (eng)
задачи на C
 
Проверить свою задачку можно:
Онлайн-компилятором Visual C++
godbolt
Wandbox
Одним из онлайн-компиляторов на ideone.com

Всего записей: 28 | Зарегистр. 23-07-2004 | Отправлено: 02:14 20-12-2004 | Исправлено: Daniyar91, 19:25 27-09-2017
Rudia



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
boiko
 printf("%d " , B);//вывод результата  
Может быть дело в этом? тут походу подразумевается B[i][j]

Всего записей: 324 | Зарегистр. 13-09-2006 | Отправлено: 17:08 07-12-2007 | Исправлено: Rudia, 17:12 07-12-2007
alex5161



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
AndryuhaT
Воов, вот это подход! (Я о задаче с совершенными числами.)
 --Респект !!!
 Я и не слышал о числах Мерсена!
(Кстати, похоже, ты увидел мой пост до того, как я его удалил. Я не правильно понял условие, точнее определение совершенных чисел. Поэтому и высказался о 6 как множителе 12-ти, неявляющегося простым. Аргумент снят, я был неправ.)
 Но, вот ты упомянул Мерсена, и я тоже заинтересовался.
 Вот что еще увидел: Все совершенные числа в двоичном виде имеют вид: n-единиц и (n-1)нулей. Т.е. 110 = 6, 11100 = 28, 1111000 - 120 - но не совершенное; 111110000 - 496,  
 Вообщем, можно еще ускорить.. Позже попробую...

Всего записей: 1446 | Зарегистр. 26-03-2002 | Отправлено: 21:35 07-12-2007
akaGM

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
boiko

Код:
 
 for(i = 0;i < N;i++)
        {
        for(j = 0;j < N;j++)
            {
            printf("Vvedite el matr A %d, %d ",i,j);//ввод исходной матрицы
            scanf("%d",&n);
 
            }
        }
 

в этом двойном цикле ты вводишь не матрицу А, а N*N раз число n...
 
надо писать
scanf("%d",&A[i][j]);
 
ну и вывод (как сказано в верхнем посте) поправь...

Всего записей: 24038 | Зарегистр. 06-12-2002 | Отправлено: 21:57 07-12-2007 | Исправлено: akaGM, 22:01 07-12-2007
vorovaika

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ну помогите,пожалууууйстааааа!!!!!!!!!!!!!

Всего записей: 8 | Зарегистр. 06-12-2007 | Отправлено: 22:58 07-12-2007
AndryuhaT

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
alex5161
Сорри, я не заметил, что ты удалил, поэтому и ответил.
Тоже смотрел про представление в двоичной системе (в той же Википедии), но просто не было сил тогда разбираться, а сейчас времени. Может потом как-нибудь на досуге..

Всего записей: 223 | Зарегистр. 18-04-2005 | Отправлено: 00:43 08-12-2007
Charlie Rat

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Помогите разобраться. Не могу правильно задать условие нечетности и минимальности элемента массива.
 
#include <iostream>
using namespace std;
int main ()
{
    const int SIZE=10;
    int i, n, arr[SIZE];
    int min_nechet;
 
for(i=0; i<SIZE; i++)
{
    printf("%s\n", "Vvedite element: ");
    scanf("%d", &arr[i]);
}
    printf("%s%13s\n", "Element", "Volume");
    for(i=0; i<SIZE; i++)
    {
        printf("%d%13d\n", i, arr[i]);
    }
    min_nechet=arr[0];
        for(n=0; n<SIZE; n++)
        {
        if (min_nechet>arr[n]&&arr[n]%2)
            min_nechet=arr[n];
        }    
        printf("%s%d\n\n", "Min_NeChet= ", min_nechet);
        
}
Заранее благодарен.

Всего записей: 17 | Зарегистр. 01-12-2007 | Отправлено: 00:46 08-12-2007
Abs62



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Charlie Rat

Цитата:
Не могу правильно задать условие нечетности и минимальности элемента массива.

Да условие-то правильное - алгоритм некорректный. Если первое значение массива чётное, но меньше остальных нечётных - оно и будет выведено. Потому надо сначала пробежаться по массиву до первого нечётного, присвоить его min_nechet, а потом с этого места идти дальше, как ты и написал.
 
PS. Разумеется, имеет смысл предусмотреть ситуацию, когда в массиве вообще нет нечётных.

----------
0 программистов ругал сердитый шеф
Потом уволил одного, и стало их FF

Всего записей: 6077 | Зарегистр. 22-10-2005 | Отправлено: 01:01 08-12-2007
Charlie Rat

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Но при таком варианте работает
   
if ((min_nechet>arr[n])&&(arr[n]%2))  
            min_nechet=arr[n];  
        }      
        printf("%s%d\n\n", "Min_NeChet= ", min_nechet);  
         
}
 
 
Добавлено:
И не совсем понятно как пробежаться до первого нечетного.

Всего записей: 17 | Зарегистр. 01-12-2007 | Отправлено: 01:08 08-12-2007
Abs62



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Charlie Rat

Цитата:
Но при таком варианте работает

Ну и хорошо.

Цитата:
И не совсем понятно как пробежаться до первого нечетного.


Код:
for(i=0; i<SIZE; i++) {  
  if (arr[i]%2) {
    min_nechet=arr[i];  
    break;
  }      
}
if(i>=SIZE) {
   // Нечётных в массиве нет!
} else {
  for(n=i; n<SIZE; n++) {
    if ((min_nechet>arr[n])&&(arr[n]%2)) min_nechet=arr[n];
  }
}
 
 


----------
0 программистов ругал сердитый шеф
Потом уволил одного, и стало их FF

Всего записей: 6077 | Зарегистр. 22-10-2005 | Отправлено: 01:26 08-12-2007
Charlie Rat

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
А теперь можно по-подробнее. Язык я только начал учить и некоторые моменты не совсем понимаю.
Вот так проверить нечетность і-го элемента массива, правильно?
 for(i=0; i<SIZE; i++) {  
  if (arr[i]%2) {  
    min_nechet=arr[i];  
    break;  
  }      
Но причем здесь break?

Всего записей: 17 | Зарегистр. 01-12-2007 | Отправлено: 01:34 08-12-2007
last_wish

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
vorovaika
Странно, что ты не можешь разобраться с первой задачей... Держи решениеПодробнее...

Всего записей: 109 | Зарегистр. 26-10-2006 | Отправлено: 01:41 08-12-2007
Abs62



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Charlie Rat

Цитата:
Вот так проверить нечетность і-го элемента массива, правильно?

Правильно.

Цитата:
Но причем здесь break?

Прерывает дальнейшее выполнение цикла. Первый нечётный нашли - выходим (или нет, тогда выйдем из цикла по нарушению условия его выполнения - i<SIZE), дальше надо сравнивать с ним последующие нечётные. Чем следующий цикл и занимается.


----------
0 программистов ругал сердитый шеф
Потом уволил одного, и стало их FF

Всего записей: 6077 | Зарегистр. 22-10-2005 | Отправлено: 01:45 08-12-2007
Charlie Rat

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Спасибо за помощь. Но я думаю, что если не разбираться в простых задачах, нечего заниматься сложными.  
Во-вторых, это все-таки форум. Я так понимаю, если кто-то что-то не понимает, он об это спрашивает. Или не так?

Всего записей: 17 | Зарегистр. 01-12-2007 | Отправлено: 01:46 08-12-2007
last_wish

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Charlie Rat
break - выход из цикла. Т.о., если первое нечетное число найдено, то прекратить поиск.

Всего записей: 109 | Зарегистр. 26-10-2006 | Отправлено: 01:47 08-12-2007
Charlie Rat

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Правильно.  
 
Цитата:Но причем здесь break?  
 
 
Прерывает дальнейшее выполнение цикла. Первый нечётный нашли - выходим (или нет, тогда выйдем из цикла по нарушению  

Цитата:
Charlie Rat  
 
Цитата:Вот так проверить нечетность і-го элемента массива, правильно?  
 
 
Правильно.  
 
Цитата:Но причем здесь break?  
 
 
Прерывает дальнейшее выполнение цикла. Первый нечётный нашли - выходим (или нет, тогда выйдем из цикла по нарушению условия его выполнения - i<SIZE), дальше надо сравнивать с ним последующие нечётные. Чем следующий цикл и занимается.

 
Вот Abs62  - спасибо.  
Т.е. если перебрали по условию if (arr[i]%2) все элементы массива и не выполнилось условие значит цикл прервется и после if(i>=SIZE) можно вставить вывод на экран сообщение. Правильно?

Всего записей: 17 | Зарегистр. 01-12-2007 | Отправлено: 01:51 08-12-2007
Abs62



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Charlie Rat

Цитата:
Спасибо за помощь. Но я думаю, что если не разбираться в простых задачах, нечего заниматься сложными.

Заниматься можно и сложными, только без понимания основ вряд ли из этого выйдет что-то путное.

Цитата:
Во-вторых, это все-таки форум. Я так понимаю, если кто-то что-то не понимает, он об это спрашивает. Или не так?

В идеале - так. Но в этой ветке чаще просят не "объясните мне", а "сделайте за меня". Порой это раздражает.
И не принимай все посты на свой счёт - в первой строке обычно указывают, кому пост адресован.

Цитата:
Т.е. если перебрали по условию if (arr[i]%2) все элементы массива и не выполнилось условие значит цикл прервется и после if(i>=SIZE) можно вставить вывод на экран сообщение. Правильно?

Да, именно так.

----------
0 программистов ругал сердитый шеф
Потом уволил одного, и стало их FF

Всего записей: 6077 | Зарегистр. 22-10-2005 | Отправлено: 01:59 08-12-2007
Charlie Rat

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Vvedite element:
2
Vvedite element:
4
Vvedite element:
6
Vvedite element:
8
Vvedite element:
0
Vvedite element:
12
Vvedite element:
14
Vvedite element:
16
Vvedite element:
18
Vvedite element:
22
Element       Volume
0            2
1            4
2            6
3            8
4            0
5           12
6           14
7           16
8           18
9           22
Massiv don't have odd number
Massiv don't have odd number
Massiv don't have odd number
Massiv don't have odd number
Massiv don't have odd number
Massiv don't have odd number
Massiv don't have odd number
Massiv don't have odd number
Massiv don't have odd number
Massiv don't have odd number
Для продолжения нажмите любую клавишу . . .
Не пойму почему десять раз выводится. Пробывал переставлять местами строку  
printf("%s\n", "Massiv don't have odd number");  
вообще чушь получается.

Всего записей: 17 | Зарегистр. 01-12-2007 | Отправлено: 02:06 08-12-2007
Abs62



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Charlie Rat

Цитата:
Не пойму почему десять раз выводится.

Проверь расстановку фигурных скобок. Похоже, ты эту печать внутрь цикла засунул, а она должна идти после него.

----------
0 программистов ругал сердитый шеф
Потом уволил одного, и стало их FF

Всего записей: 6077 | Зарегистр. 22-10-2005 | Отправлено: 02:11 08-12-2007
Charlie Rat

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Все разобрался.
Получается вот так.
 
#include <iostream>
using namespace std;
int main ()
{
    const int SIZE=10;
    int i, n, arr[SIZE];
    int min_nechet;
 
for(i=0; i<SIZE; i++)
    {
    printf("%s\n", "Vvedite element: ");
    scanf("%d", &arr[i]);
    }
    printf("%s%13s\n", "Element", "Volume");
    
    for(i=0; i<SIZE; i++)
        {
        printf("%d%13d\n", i, arr[i]);
        }
        
        for(n=0; n<SIZE; n++)
            {
            
            for(i=0; i<SIZE; i++)  
            {  
            if (arr[i]%2)  
            {  
                min_nechet=arr[i];  
                  break;  
              }      
            }  
                if(i>=SIZE)  
                {  
                   }  
                else  
            {  
            
            for(n=i; n<SIZE; n++) {  
            if ((min_nechet>arr[n])&&(arr[n]%2)) min_nechet=arr[n];  
            }  
            }
            }
            printf("%s\n", "Massiv don't have odd number");// Нечётных в массиве нет!  
}
 
и результат:
Vvedite element:
2
Vvedite element:
2
Vvedite element:
2
Vvedite element:
2
Vvedite element:
2
Vvedite element:
2
Vvedite element:
2
Vvedite element:
2
Vvedite element:
2
Vvedite element:
2
Element       Volume
0            2
1            2
2            2
3            2
4            2
5            2
6            2
7            2
8            2
9            2
Massiv don't have odd number
Для продолжения нажмите любую клавишу . . .
 
Добавлено:
Хотя возможно здесь и лишние фигурные скобки.

Всего записей: 17 | Зарегистр. 01-12-2007 | Отправлено: 02:15 08-12-2007 | Исправлено: Charlie Rat, 02:17 08-12-2007
Abs62



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Charlie Rat

Цитата:
Все разобрался.

Скорее запутался.
Лучше пиши с отступами, как принято - а то в мешанине скобок без поллитры не разобраться будет.

Код:
  for(i=0; i<SIZE; i++) {    
     if (arr[i]%2) {  
         min_nechet=arr[i];    
         break;  
     }      
  }  
  if(i>=SIZE) {    
    printf("%s\n", "Massiv don't have odd number");
  } else {  
     for(n=i; n<SIZE; n++) {  
        if ((min_nechet>arr[n])&&(arr[n]%2)) min_nechet=arr[n];  
     }  
     printf("Minimum odd number: %i\n", min_nechet);
  }


----------
0 программистов ругал сердитый шеф
Потом уволил одного, и стало их FF

Всего записей: 6077 | Зарегистр. 22-10-2005 | Отправлено: 02:28 08-12-2007
Открыть новую тему     Написать ответ в эту тему

Страницы: 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 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Задачи по C/С++


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru