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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
pomochmne01
0 / 0 / 0
Регистрация: 03.03.2014
Сообщений: 17
#1

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

08.07.2014, 17:49. Просмотров 343. Ответов 13
Метки нет (Все метки)

//Дана целочисленная матрица À(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++
помогите пожалуйста с программой( среда Visual C ) Дана строка символов, состоящая из произвольного текста, слова разделены пробелами....

Найти номер строки содержащей равное количество положительных и отрицательных элементов - C++
Дана целочисленная матрица размера M × N. Найти номер первой из ее строк, содержащих равное количество положительных и отрицательных...

Из 12 положительных чисел, найти самое большое число и вывести его порядковый номер - C++
Входной файл: input.txt Выходной файл: output.txt Женя купила 12 яблок и по приходу домой решила узнать массу каждого яблока....

STL: найти все максимальные цепочки подряд идущих положительных чисел с указанием длины каждой цепочки - C++
Создать массив длины N (число N вводится с клавиатуры). Заполнить массив рандомно. Найти все максимальные цепочки подряд идущих...

Найти сумму произведения четных чисел 1ой строки и произведения положительных чисел 3-го столбца - C++
В матрице А(4;4) найти сумму произведения четных чисел 1ой строки и произведения положительных чисел 3-го столбца не правильно...

Найти номер элемента, с которого начинается самая длинная последовательность единиц - C++
Люди, окажите пожалуйста хелп, буду признателен...Minmax28. Дано целое число N и набор из N целых чисел, содержащий только нули и единицы....

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Тамика
Котовчанин
870 / 450 / 143
Регистрация: 16.02.2010
Сообщений: 2,961
Записей в блоге: 27
08.07.2014, 17:54 #2
Где Ваша ошибка Вам скажет компилятор.
ValeryS
Модератор
6556 / 5022 / 464
Регистрация: 14.02.2011
Сообщений: 16,763
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
программа работает и вычисляет, но неправильно, ошибок не выдает
Тамика
Котовчанин
870 / 450 / 143
Регистрация: 16.02.2010
Сообщений: 2,961
Записей в блоге: 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
Модератор
6556 / 5022 / 464
Регистрация: 14.02.2011
Сообщений: 16,763
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
54 / 54 / 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
Модератор
6556 / 5022 / 464
Регистрация: 14.02.2011
Сообщений: 16,763
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
1052 / 715 / 105
Регистрация: 12.04.2010
Сообщений: 1,810
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...) на этом завершится.
zss
Модератор
Эксперт С++
6359 / 5923 / 1920
Регистрация: 18.12.2011
Сообщений: 15,223
Завершенные тесты: 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();
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.07.2014, 19:23
Привет! Вот еще темы с ответами:

Найти номер элемента из массива А, с которого массив В начинается как подпоследовательность - C++
Помогите, пожалуйста, написать программу, которая находила бы номер элемента из массива А, с которого массив В начинается как...

Найти номер элемента из массива А, с которого массив В начинается как подпоследовательность - C++
Помогите, пожалуйста, написать программу, которая находила бы номер элемента из массива А, с которого массив В начинается как...

Найти строку в файле, которая начинается с заданной буквы - C++
Помогите, пожалуйста, разобраться с такой задачей: Имеется текстовый файл. Выяснить, имеется ли в нем строка, начинающаяся с буквы «t»....

Матрица двузначных чисел: первая цифра указывает на номер строки, а вторая – на номер столбца - C++
Заполнить массив N x M двузначными числами так, чтобы первая цифра указывала номер строки, а вторая – номер столбца. КАК ПРОПИСАТЬ НЕ...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
08.07.2014, 19:23
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru