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

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

Восстановить пароль Регистрация
 
pomochmne01
0 / 0 / 0
Регистрация: 03.03.2014
Сообщений: 17
08.07.2014, 17:49     Найти номер строки, которая начинается с К положительных чисел подряд #1
//Дана целочисленная матрица À(N, N).
// Найдите номер первой из ее строк,
// которые начинаются с К положительных чисел подряд.
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
#include <conio.h>
#include <iostream.h>
 
int A[10][10];
int i,j,n;
int k,s,f;
//------------------------------
void inputoutput()
{
clrscr();
cout << "N= "; cin >> n;
for (i=0; i<n; i++)
for (j=0; j<n; j++)
{ cout << "A[" << i+1 << "," << j+1 << "] = ";
cin >> A[i][j];
}
 
clrscr();
cout << "матрица*: \n";
for (i=0; i<n; i++)
{ for (j=0; j<n; j++)
cout << A[i][j] << " ";
cout << "\n";
}
 
}
//-------------------------------
void reshenie()
{ f=0; i=0;
while ((i<n) && !f)
{j=0;
while ((j<k) && !f)
if (A[i][j] > 0)
{ s=i;f=1; } else j++;i++;
}
if (f)
cout << "номер строки = "<<s;
else cout << "такой строки нет!" ;
getch();
}
//--------------------------------
void main()
{
inputoutput();
cout<<"k = "; cin>>k;
reshenie() ;
 
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.07.2014, 17:49     Найти номер строки, которая начинается с К положительных чисел подряд
Посмотрите здесь:

Найти номер элемента из массива А, с которого массив В начинается как подпоследовательность C++
Найти номер элемента из массива А, с которого массив В начинается как подпоследовательность C++
C++ Найти порядковый номер слова максимальной длины в строке и номер позиции, с которой оно начинается
C++ Найти строку в файле, которая начинается с заданной буквы
C++ Найти номер элемента, с которого начинается самая длинная последовательность единиц
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Тамика
Котовчанин
 Аватар для Тамика
859 / 439 / 129
Регистрация: 16.02.2010
Сообщений: 2,537
Записей в блоге: 27
08.07.2014, 17:54     Найти номер строки, которая начинается с К положительных чисел подряд #2
Где Ваша ошибка Вам скажет компилятор.
ValeryS
Модератор
6374 / 4840 / 441
Регистрация: 14.02.2011
Сообщений: 16,040
08.07.2014, 17:56     Найти номер строки, которая начинается с К положительных чисел подряд #3
Цитата Сообщение от pomochmne01 Посмотреть сообщение
void main()
C++
1
int main()
Цитата Сообщение от pomochmne01 Посмотреть сообщение
clrscr();
что за функция???
Цитата Сообщение от pomochmne01 Посмотреть сообщение
#include <iostream.h>
C++
1
#include <iostream>
где разрешение использования пространства имен?
Цитата Сообщение от pomochmne01 Посмотреть сообщение
cout << "матрица*: \n";
где команда работать с русским шрифтом?
Цитата Сообщение от pomochmne01 Посмотреть сообщение
int A[10][10];
int i,j,n;
int k,s,f;
использование глобальных переменных, дурной тон
код выделяй тегами
ну и самое главное
какой компилятор? и какие ошибки выдает?
pomochmne01
0 / 0 / 0
Регистрация: 03.03.2014
Сообщений: 17
08.07.2014, 17:56  [ТС]     Найти номер строки, которая начинается с К положительных чисел подряд #4
программа работает и вычисляет, но неправильно, ошибок не выдает
Тамика
Котовчанин
 Аватар для Тамика
859 / 439 / 129
Регистрация: 16.02.2010
Сообщений: 2,537
Записей в блоге: 27
08.07.2014, 17:58     Найти номер строки, которая начинается с К положительных чисел подряд #5
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
#include <iostream>
 
using namespace std;
 
int A[10][10];
int i,j,n;
int k,s,f;
//------------------------------
void inputoutput()
{
system("cls");
cout << "N= "; cin >> n;
for (i=0; i<n; i++)
for (j=0; j<n; j++)
{ cout << "A[" << i+1 << "," << j+1 << "] = ";
cin >> A[i][j];
}
 
system("cls");
cout << "матрица*: \n";
for (i=0; i<n; i++)
{ for (j=0; j<n; j++)
cout << A[i][j] << " ";
cout << "\n";
}
 
}
//-------------------------------
void reshenie()
{ f=0; i=0;
while ((i<n) && !f)
{j=0;
while ((j<k) && !f)
if (A[i][j] > 0)
{ s=i;f=1; } else j++;i++;
}
if (f)
cout << "номер строки = "<<s;
else cout << "такой строки нет!" ;
getch();
}
//--------------------------------
void main()
{
    setlocale(LC_ALL, "" );
    inputoutput();
    cout<<"k = "; cin>>k;
    reshenie() ;
 
}
Добавлено через 58 секунд
Цитата Сообщение от pomochmne01 Посмотреть сообщение
программа работает и вычисляет, но неправильно, ошибок не выдает
Так может поведаете нам сию тайну? В чём ошибка-то? Что неправильно вычисляет? Что должно быть?
pomochmne01
0 / 0 / 0
Регистрация: 03.03.2014
Сообщений: 17
08.07.2014, 17:59  [ТС]     Найти номер строки, которая начинается с К положительных чисел подряд #6
clrscr() - чистка экрана.
ValeryS
Модератор
6374 / 4840 / 441
Регистрация: 14.02.2011
Сообщений: 16,040
08.07.2014, 18:01     Найти номер строки, которая начинается с К положительных чисел подряд #7
Тамика,
судя по этому
Цитата Сообщение от pomochmne01 Посмотреть сообщение
#include <iostream.h>
Цитата Сообщение от pomochmne01 Посмотреть сообщение
clrscr();
и
Цитата Сообщение от pomochmne01 Посмотреть сообщение
программа работает и вычисляет,
у него BC3.1

Добавлено через 56 секунд
Цитата Сообщение от pomochmne01 Посмотреть сообщение
clrscr() - чистка экрана.
какого экрана?
Си не знает не про какие экраны
соответственно функция нестандартная, где описана?
pomochmne01
0 / 0 / 0
Регистрация: 03.03.2014
Сообщений: 17
08.07.2014, 18:02  [ТС]     Найти номер строки, которая начинается с К положительных чисел подряд #8
программа должна выдать первую встречающуюся строку, которая начинается ровно с К положительных чисел подряд, а она выдает строку с номером 0. не могу разобраться((((
extenup
53 / 53 / 3
Регистрация: 12.11.2011
Сообщений: 109
08.07.2014, 18:03     Найти номер строки, которая начинается с К положительных чисел подряд #9
В логику программы я не вникал. Но ошибки следующие:

1. #include <iostream.h> а надо #include <iostream>. Расширение *.h в c++ не пишется.
2. clrscr(); это не кроссплатформенная функция.
3. Зависит от компилятора, но по хорошему функция main должна возвращать значение.
4. Для того - чтобы работать с stl, надо добавить пространство имён using namespace std.

Вот так скомпилится.

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
//Дана целочисленная матрица ГЂ(N, N).
// Найдите номер первой из ее строк,
// которые начинаются с К положительных чисел подряд.
#include <conio.h>
#include <iostream>
using namespace std;
 
int A[10][10];
int i,j,n;
int k,s,f;
//------------------------------
void inputoutput()
{
//clrscr();
cout << "N= "; cin >> n;
for (i=0; i<n; i++)
for (j=0; j<n; j++)
{ cout << "A[" << i+1 << "," << j+1 << "] = ";
cin >> A[i][j];
}
 
//clrscr();
cout << "матрица*: \n";
for (i=0; i<n; i++)
{ for (j=0; j<n; j++)
cout << A[i][j] << " ";
cout << "\n";
}
 
}
//-------------------------------
void reshenie()
{ f=0; i=0;
while ((i<n) && !f)
{j=0;
while ((j<k) && !f)
if (A[i][j] > 0)
{ s=i;f=1; } else j++;i++;
}
if (f)
cout << "номер строки = "<<s;
else cout << "такой строки нет!" ;
getch();
}
//--------------------------------
int main()
{
inputoutput();
cout<<"k = "; cin>>k;
reshenie() ;
 
return 0;
}
pomochmne01
0 / 0 / 0
Регистрация: 03.03.2014
Сообщений: 17
08.07.2014, 18:04  [ТС]     Найти номер строки, которая начинается с К положительных чисел подряд #10
при запуске программы убирает с экрана все ненужные строки и символы
ValeryS
Модератор
6374 / 4840 / 441
Регистрация: 14.02.2011
Сообщений: 16,040
08.07.2014, 18:05     Найти номер строки, которая начинается с К положительных чисел подряд #11
Цитата Сообщение от pomochmne01 Посмотреть сообщение
при запуске программы убирает с экрана все ненужные строки и символы
мне еще раз повторить?
Цитата Сообщение от ValeryS Посмотреть сообщение
соответственно функция нестандартная, где описана?
почему не подключен данный заголовок?
pomochmne01
0 / 0 / 0
Регистрация: 03.03.2014
Сообщений: 17
08.07.2014, 18:13  [ТС]     Найти номер строки, которая начинается с К положительных чисел подряд #12
мне нужно с этим поработать. где что исправить не понимаю
void reshenie()
{ f=0; i=0;
while ((i<n) && !f)
{j=0;
while ((j<k) && !f)
if (A[i][j] > 0)
{ s=i;f=1; } else j++;i++;
}
if (f)
cout << "номер строки = "<<s;
else cout << "такой строки нет!" ;
getch();
}
Alex5
881 / 616 / 81
Регистрация: 12.04.2010
Сообщений: 1,551
08.07.2014, 18:42     Найти номер строки, которая начинается с К положительных чисел подряд #13
Цитата Сообщение от pomochmne01 Посмотреть сообщение
строки, которые начинаются с К положительных чисел подряд.
Можно написать отдельную функцию, чтобы при решении этого вопроса не отвлекаться на другие.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
int analys_stroki( int i, int n, int A[10][10], int k) 
{
  /*результат: 1, строка найдена; 0, строка не подходит */
}
int main()
{
  while ((i<n) && !f)
  {
    f = analys_stroki( i, n, A, k);
    // ...
  }
  //...
}
Цитата Сообщение от pomochmne01 Посмотреть сообщение
C++
1
2
3
while ((j<k) && !f)
if (A[i][j] > 0)
{ s=i;f=1; } else j++;
Что делает оператор if (A[i][j] > 0)? Например, первый элемент в строке положительный. Цикл while(j...) на этом завершится.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.07.2014, 19:23     Найти номер строки, которая начинается с К положительных чисел подряд
Еще ссылки по теме:

C++ Дано двумерный массив целых чисел. Найти номер строки, в которой сумма отрицательных нечетных элементов наибольшая
STL: найти все максимальные цепочки подряд идущих положительных чисел с указанием длины каждой цепочки C++
Матрица двузначных чисел: первая цифра указывает на номер строки, а вторая – на номер столбца C++

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

Или воспользуйтесь поиском по форуму:
zss
Модератор
Эксперт С++
 Аватар для zss
5942 / 5547 / 1783
Регистрация: 18.12.2011
Сообщений: 14,155
Завершенные тесты: 1
08.07.2014, 19:23     Найти номер строки, которая начинается с К положительных чисел подряд #14
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
void reshenie()
{ 
    bool f=true; 
    for(int i=0;i<n;i++)
   {
         for(int j=0;j<k;j++)
             if (A[i][j] <0)
             { 
                 f=false;break; 
             }
        if (f)
        {
             cout << "номер строки = "<<i<<endl;
             break;
        }
   }
   if(!f)
          cout << "такой строки нет!" ;
   getch();
}
Yandex
Объявления
08.07.2014, 19:23     Найти номер строки, которая начинается с К положительных чисел подряд
Ответ Создать тему
Опции темы

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