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

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

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

Где спряталась ошибка? - C++

25.03.2014, 14:05. Просмотров 182. Ответов 3
Метки нет (Все метки)

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

C++ (Qt)
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
#include "stdafx.h"
#include <stdio.h>
#include <clocale>  // для setlocale (LC_CTYPE,"rus");
#include <cstdlib>  // для system("cls");
 
int _tmain(int argc, _TCHAR* argv[])
{setlocale (LC_CTYPE,"rus");    // для русского языка
    int *A,n,m;
    
    printf("введите количество строк\n");
        scanf_s("%d", &n);
        printf("введите количество столбцов\n");
        scanf_s("%d", &m);
        A=new int[n*m];
    
 
    // заполнение массива
    for(int i=0;i<n;i++)    // строки
    {
        for(int j=0;j<m;j++)    // столбцы
        {
            printf("введите значение строки %d, столбца %d\n", i+1,j+1);
            scanf_s("%d", &A[i*j]);
        }
    } 
 
    // обработка массива
    for(int i=0;i<n;i++)    // строки
        {
            for(int j=0;j<m;j++)    // столбцы
            {
                if(A[i*j]<0)
                    printf("в строке %d, столбце %d найден отрицательный элемент\n",i+1,j+1);
            }
        }
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.03.2014, 14:05     Где спряталась ошибка?
Посмотрите здесь:

где ошибка? - C++
При компиляции выдает следущее #include &quot;stdafx.h&quot; #include &lt;conio.h&gt; #include &lt;iostream&gt; using namespace std; #define ROW 3 ...

где ошибка - C++
у меня такая программа для создание матриц. но условие if(j==i-1) {} не выполняется. не знаю почему. помогите разобраться #include...

Где ошибка? - C++
Пожулуйста подскажите, что я делаю не правильно: Условие: Напишите программу, которая вводит с клавиатуры три целых числа и...

Где ошибка ? - C++
Найти наибольший общий делитель для двух целых чисел. #include &lt;iostream&gt; using namespace std; int main() { int a,b; ...

Где ошибка?! - C++
Сортировка массива. Создаю функцию swap... Загоняю в него 9 элементов, а он мне даёт 10! Прчём десятый, не заданное число, а какое то очень...

Где ошибка? - C++
#include &lt;iostream&gt; using namespace std; int main() { int Fx=4, Fy=5, x, y, m; cin&gt;&gt;x; cin&gt;&gt;y; for(x=0; x&lt;7; x++) ...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
dimcoder
Полярный
458 / 431 / 67
Регистрация: 11.09.2011
Сообщений: 1,129
25.03.2014, 14:20     Где спряталась ошибка? #2
Цитата Сообщение от voevoda665 Посмотреть сообщение
дана матрица
Цитата Сообщение от voevoda665 Посмотреть сообщение
A=new int[n*m];
Не то что бы в яблочко, ну да ладно.
Цитата Сообщение от voevoda665 Посмотреть сообщение
if(A[i*j]<0)
но вот здесь интереснее. Если следовать циклу, то обращения к массиву будут примерно такие: 0, 0, 0, 0, 0... 0, 1, 2, 3.... 0, 2, 4, 6...
И заполняется не лучше.
Вы наверное так имели ввиду:
C++
1
if(A[i*m + j]<0
Цитата Сообщение от voevoda665 Посмотреть сообщение
вводим значения и так далее все работает...
А теперь выведите и посмотрите на результат.
PS дайте полностью задание, так всегда легче помогать
Anton_Kretov
89 / 51 / 7
Регистрация: 26.06.2013
Сообщений: 179
25.03.2014, 14:29     Где спряталась ошибка? #3
Написал свою версию, вопрос только в том, что вам нужно выводить номер строки с точки зрения С++ (т.е. если отрицательный элемент в первой строке, то выводить 0)? Если да, то оставьте так, как есть. Нет - напишите в последнем cout'е i + 1
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
#include <iostream>
 
using namespace std;
 
int main()
{
    setlocale(LC_ALL, "rus");
    int n; //numberOfStrings
    int m; //numberOfColumns
    cout << "Введите кол-во строк в массиве: "; cin >> n;
    cout << "Введите кол-во столбцов в массиве: "; cin >> m;
    int **arrayOfNumbers = new int* [n];
        for(int i = 0; i < n; i++) {
            arrayOfNumbers[i] = new int [m];
        }
 
    for(int i = 0; i < n; i++) {
        for(int j = 0; j < m; j++) {
            cout << "Введите значение элемента под индексом [" << i << ";" << j << "]:";
            cin >> arrayOfNumbers[i][j];
        }
    }
 
    for(int i = 0; i < n; i++) {
        for(int j = 0; j < m; j++) {
            if(arrayOfNumbers[i][j] < 0) cout << "Номер строки с отрицательным элементом - " << i;
        }
    }
 
    return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.03.2014, 15:05     Где спряталась ошибка?
Еще ссылки по теме:

Где ошибка? - C++
//--------------------------------------------------------------------------- #include &lt;vcl.h&gt; #pragma hdrstop ...

Где ошибка? - C++
#include&lt;conio.h&gt; #include&lt;iostream.h&gt; #include&lt;fstream.h&gt; #include&lt;stdio.h&gt; #define i 10 int x; char...

Где то ошибка - C++
Помогите вот текст программы не могу разобраться что да как. Все вроде правильно. #include &lt;stdio.h&gt; #include &lt;iostream&gt; #include...

Где ошибка ? - C++
Нужна помощь по нахождению ошибки.


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

Или воспользуйтесь поиском по форуму:
voevoda665
0 / 0 / 0
Регистрация: 25.03.2014
Сообщений: 2
25.03.2014, 15:05  [ТС]     Где спряталась ошибка? #4
http://cs616019.vk.me/v616019211/83e0/CXWJ7doEjI8.jpg

попробовал как вы говорили. результат такой же. на скрине как оно есть.

Добавлено через 6 минут
Цитата Сообщение от Anton_Kretov Посмотреть сообщение
Написал свою версию
Меня так не учили.. да и вовсе всего пару занятий дали и перешли на сишарп. так что такой код я не очеь понимаю((( но в принципе
Цитата Сообщение от Anton_Kretov Посмотреть сообщение
for(int i = 0; i < n; i++) {
* * * * for(int j = 0; j < m; j++) {
* * * * * * if(arrayOfNumbers[i][j] < 0) cout << "Номер строки с отрицательным элементом - " << i;
это же тоже самое что и у меня? или если не сложно как это будет выглядеть в моем коде?
Yandex
Объявления
25.03.2014, 15:05     Где спряталась ошибка?
Ответ Создать тему
Опции темы

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