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

Найти такую непрерывную последовательность положительных чисел, сумма элементов в которой максимальна - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ блок-схема http://www.cyberforum.ru/cpp-beginners/thread142900.html
#include <stdlib.h> #include <stdio.h> #include <conio.h> #include <string.h> struct inf{ char surname; char name; char date; char misto;
C++ Какой интерфейс сделать для стека Здравствуйте уважаемые форумчане. Для стека нужно сделать графический интерфейс, как лучше реализовать не знаю. Подскажите как лучше это сделать. Глупо наверное, но есть мысль на CLR форму запихнуть... http://www.cyberforum.ru/cpp-beginners/thread142895.html
C++ Возникает ошибка при использовании fscanf
Здраствуйте. Возникла такая проблема что при попытке что-то сделать с временной строкой 'с' выдается виндовская ошибка что пямать не может быть read. даже вывести ее после сканфа не получается....
warning C4005: '_WIN32_WINDOWS' : macro redefinition C++
есть программа ,при компилирование выдает ошибку такого рода -------------------Configuration: DIPLOM_6 - Win32 Debug-------------------- Compiling... DIPLOM_6.cpp c:\program files\microsoft...
C++ Дано натуральное число n http://www.cyberforum.ru/cpp-beginners/thread142882.html
дано натуральное число n, действытельные числа А, ... ,Аn. Получить min(А1,А3 ...);
C++ Where to download C++ Where to download C++. Write plese! :scratch: Throw link! подробнее

Показать сообщение отдельно
НеПродюссер
32 / 20 / 3
Регистрация: 05.03.2010
Сообщений: 51
10.06.2010, 01:07
возможно, все из-за того, что в for стоит меньше=) хотя было бы правильно в данной ситуации меньше или равно, ибо у Вас не размер, а конкретный индекс и до него надо дойти=)

а выводит положительное число, скорее всего, потому что рандомно задает массив, в котором больше двух положительных рядом нет, в итоге выводит первый из элемент из самой длинной цепочки=)

вообщем, так

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
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
#include <conio.h>
#include <graphics.h>
#include <iostream.h>
 int M[200];
 
int main(void) {
 int i, j;
 int sum;
 int max;
 int start_index=0;
 amount_max=1;
 
clrscr();
  randomize();
  for (i=0; i<200; M[i++]=random(201)-100 );
 
  printf("Array:\n");
  for (i=0; i<200; printf("%3d  ",M[i++]));
 
  putchar('\n');
  putchar('\n');
 
 
for (i=0; i<200;i++) {
if (M[i]<0) continue;
 
int max_sum=M[0];
int curr_amount=1;
int curr_sum=M[i];
int curr_index=i;
 
 
for (int j=i+1; j<200 && M[j-1] < M[j] && M[j] >0; j++)
{curr_sum+=M[j];
curr_amount++;
 
}
if (curr_sum>max_sum)
{
max_sum=curr_sum;
start_index=curr_index;
amount_max=curr_amount;
}
if (curr_amount>2)
i=i+(curr_amount-2);
}
//vyvod na druk
for (int k=start_index; k<=(start_index+amount_max); printf("%d ", M[k++], "\n"));
_getch();
return 0;
}
вот примерно так=)
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru