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

Командная строка, работа с файлами - C++

Восстановить пароль Регистрация
 
SilverAngel
0 / 0 / 0
Регистрация: 04.10.2013
Сообщений: 3
09.10.2013, 17:07     Командная строка, работа с файлами #1
Вот задание. Я не знаю, как организовать подсчет номера байта для числа, с которого начинается самая длинная возрастающая последовательность(в этом примере она зеленым подчеркнута).
вот сам код моей проги. В самом проге тоже есть небольшой косяк, но никак найти не могу
((если вводить такие же данные, как в примере на листочке, то прога кроме нужной последовательности выдает еще другую последовательность, число элементов которых тоже равно 4, но эта последовательность начинается с 22-го элемента!!! Это меня очень смущает, т. к. 22-й элемент, уже последний в ряду...Помогите плиз, прогу завтра надо срочным образом сдать(( Вся надежда только на вас, ибо никто из знакомых помогать не хочет(
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
 #include <iostream>
#include <stdio.h>
#include <stdlib.h>
 
int main( int argc, char*argv[ ])
{
if(argc !=3)
  {printf("vvedite imena failov pravilno");
   exit(1);}
 
int n=3, m , i , j ,s=0 ,k=1 , maxK ,nom;
 
FILE *f1=fopen(argv [1],"rt");
FILE *f2=fopen(argv [2],"wt");
 
fscanf(f1,"%d", &m);
 
 
int*res=new int[m];
 
int*mas=new int[m];
/*int*bit=new int[m];*/
 
for(i=0; i<m; i++){
fscanf(f1, "%d", &mas[i]);    // посимвольн*ый ввод чисел в массив, s-это счетчик байтов в файле изменено c->d
/*s++;                            //который сразу записывает*ся в другой массив с данными для каждого числа
bit[i]=i;*/
}
 
for(i=0; i<m; i++){
  res[i]=1;
  for(j=i;j<m;j++){
   if(mas[j]<mas[j+1])
   {k++;             //включаем* счетчик для возрастающ*его ряда, который начинается* с i-того элемента
    res[i]=k;}   //сразу записываем* значение счетчика в массив
    else{            //если условие не выполняетс*я, то k обнуляется* и цикл заканчивае*тся для данного значения i
        k=1;
 
        break;
    }
  }
}
 
maxK=0;
for(j=0; j<m; j++)
  if(maxK<res[j])
{maxK=res[j];
  nom=j;}
 
fprintf(f2, "\n%d\n%d", res[nom],nom+1 );
  for(i=0; i<m; i++)
  if(res[i]==maxK and i!=nom)
    {
     fprintf(f2, "\n%d\n%d", res[i], i+1);}
 
 
  /*for(i=0; i<m;i++)
   delete[ ] res[i];*/
   delete[ ] res;
   delete[ ] mas;
   /*delete[ ] bit;*/
 
   fclose(f1);
   fclose(f2);
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.10.2013, 17:07     Командная строка, работа с файлами
Посмотрите здесь:

Командная строка в С++ C++
C++ командная строка
Командная строка C++
C++ Командная строка
Командная строка C++
C++ Командная строка
C++ Командная строка
C++ Командная строка

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 10:17. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru