Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как исправить матрицу 
:(
    Опции темы
narem
Дата 3.12.2015, 13:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 3.12.2015

Репутация: нет
Всего: нет



Собственно написал консольное приложение.
Цитата

#include <iostream>

using namespace std;

void main()
{
    setlocale(LC_ALL, "Russian");
    int x = 0;
    int y = 0;

    const int SIZE = 4;
    int mass[SIZE][SIZE];

    for (int i = 0; i < SIZE; i++)
    {
  for (int j = 0; j < SIZE; j++)
  {
    cout << "Введите элемент" << " Строка [ " << i << " ] " << "Столбец [ " << j << " ]" << " ";
    cin >> mass[i][j];
  }
    }

    int min = mass[0][0];

    for (int i = 0; i < SIZE; i++)
    {
  for (int j = 0; j < SIZE; j++)
  {
    if (min > mass[i][j])
    {
    min = mass[i][j];
    x = i;
    y = j;
    }
  }
    }

    cout << "Минимальный элемент " << "[ " << x << " ]" << "[ " << y << " ]" << " " << min << endl;
}

Но косяк в том, что он просит в консоли вводить криво т.е вместо "введите строку 1 столбец 1" он просит "введите строку 0 столбец 0".
Подскажите как исправить.
PM MAIL   Вверх
math64
Дата 3.12.2015, 14:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2505
Регистрация: 12.4.2007

Репутация: 12
Всего: 72



Код

    cout << "Введите элемент" << " Строка [ " << i + 1 << " ] " << "Столбец [ " << j + 1 << " ]" << " ";

PM   Вверх
narem
Дата 3.12.2015, 14:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 3.12.2015

Репутация: нет
Всего: нет



Если так написать, то начинает результат криво отображать https://pp.vk.me/c633526/v633526009/239c/J3p7-1_Ue6k.jpg

Добавлено через 14 минут и 54 секунды
А все, надо было просто 
x = i;
y = j;
на 
x = i+1;
y = j+1;
исправить
PM MAIL   Вверх
math64
Дата 3.12.2015, 15:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2505
Регистрация: 12.4.2007

Репутация: 12
Всего: 72



Цитата(narem @  3.12.2015,  14:50 Найти цитируемый пост)
А все, надо было просто 
x = i;
y = j;
на 
x = i+1;
y = j+1;
исправить 

лучше сделать + 1 при выводе:
Код

    cout << "Минимальный элемент " << "[ " << x + 1 << " ]" << "[ " << y + 1 << " ] = " << min << endl;

PM   Вверх
narem
Дата 3.12.2015, 16:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 3.12.2015

Репутация: нет
Всего: нет



А мб еще с этим подскажите
Написать программу в соответствии с заданием, предложенным ниже:
Дан одномерный массив, состоящий из N целочисленных элементов.
 a)Заполнить массив случайными числами.
 b)Найти максимальный положительный элемент.
 c)Вычислить произведение элементов массива.
 d)Вывести положительные элементы на экран.

Цитата

#include<iostream>
#include<cstdlib>
#include<ctime>
#define A 20
#define B 10
using namespace std;

int main(){
    setlocale(LC_ALL, "Russian");
    srand(time(0));
    int n;
    cout << "N= ";
    cin >> n;
    if (n <=0){
  cerr << "Ошибка ввода" << endl;
  return 1;
    }
    float *mas = new float[n], max, prod = 1, f = 0;
    int imax;
    for (int i = n - 1; i >= 0; i--){
  mas[i] = rand() % A - B;
  if (i == n - 1){ max = mas[n - 1]; imax = n - 1; }
  if (mas[i]){
    cout << mas[i] << " ";
    f = 1;
    prod *= mas[i];
  }
  if (max< mas[i]) { max = mas[i]; imax = i; }
    }
    if (max>0) cout << "\n\nМаксимальный элемент = " << max  << endl;
    if (f) cout << "\nПроизведение= " << prod << endl;
    delete[]mas;
}


То же задание почти сделал, но вот не понимаю как сделать  d)Вывести положительные элементы на экран.
PM MAIL   Вверх
math64
Дата 4.12.2015, 07:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2505
Регистрация: 12.4.2007

Репутация: 12
Всего: 72



c) Даже если среди элементов массива есть нулевые, произведение всё равно есть и равно 0. Поэтому проверка на 0 не нужна.
d) Организовать ещё один цикл 
Код

cout << "Положительные элементы:";
for(int i = 0; i < n; i++)
  if (mas[i] > 0)
     cout << " " << /* i + 1 << ": " << */ mas[i];
cout << endl;

PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

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


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0444 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.