Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.12.2012, 23:15   #1
DIQUON
Форумчанин
 
Регистрация: 01.11.2012
Сообщений: 122
По умолчанию Двумерный массив.С++.

Сформировать матрицу целых чисел. Количество строк и столбцов ввести с клавиатуры. Написать функцию для уменьшения на 5 значений тех элементов матрицы, которые кратны 3 и находятся в пределах от 0 до 50.

Не могу сделать последние задание.Точнее не знаю как уменьшить каждый елемент который кратный 3 на 5((
Буду благодарен за помощь.

Вот мои нароботки:

Source File:

Код:
#include <iostream>
#include "vvid.h"
#include "vivid.h"
#include "det.h"

using namespace std;

void vvid(int, int, int**);
void vivid(int, int, int**);
int sum(int, int, int**);
int main()

{
	int n, m, i;
	cout << "How many string's?:";
	cin>> n;
	cout << "How many column's?:";
	cin>> m;
	int **a; a = new int *[n];
	for(i=0; i<n; i++)
	a[i] = new int[m];
	vvid(n, m ,a);
	cout << "It's your array:" << endl;
	vivid(n, m, a);
    det(n, m, a);
	cin.get();
	cin.get();
	return 0;
}
Header File "vvid.h":
Код:
void vvid(int n, int m, int **a)
{
	int i, j;
	for(i=0; i<n; i++)
		for(j=0; j<m; j++)
		{
			std::cout << "Please input element number["<<i+1<<"] ["
                                                                << j+1 << "]:";
			std::cin>> a[i][j];
		}
}
Header File "vivid.h"
Код:
void vivid(int n, int m, int **a)
{
	int i, j;
	for(i=0; i<n; i++)
	{
		for(j=0; j<m; j++)
			std::cout << a[i][j] << " ";
		std::cout << std::endl;
	}
}
Header File "det.h"
Код:
void det(int n, int m, int **a)
{
	int i, j;
	for(i=0; i<n; i++)
		for(j=0; j<m; j++)
		{
            if(i%3==0)
                for(j=0; j<50; j++)
               // вот не знаю как удалить от каждого елемента 5
                
		}
}
DIQUON вне форума Ответить с цитированием
Старый 12.12.2012, 18:18   #2
DIQUON
Форумчанин
 
Регистрация: 01.11.2012
Сообщений: 122
По умолчанию

Что никто не может помочь?
DIQUON вне форума Ответить с цитированием
Старый 12.12.2012, 18:26   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Видимо код не ты писал, раз не знаешь как такое простое действие прописать.
Код:
void det(int n, int m, int **a)
{
	int i, j;
	for(i=0; i<n; i++)
		for(j=0; j<m; j++)
		{
            if(i%3 && a[i][j]>0 && a[i][j]<=50) a[i][j]-=5
                
		}
}
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 12.12.2012, 21:37   #4
DIQUON
Форумчанин
 
Регистрация: 01.11.2012
Сообщений: 122
По умолчанию

Все равно не правильно считает.
Теперь выдает первую строку за -5 -5 -5 и т.д.
Что здесь не верно? все числа которые кратные 3 програма оставляет без изменений(

Код:
#include <iostream>
#include "vvid.h"
#include "vivid.h"
#include "det.h"

using namespace std;

void vvid(int, int, int**);
void vivid(int, int, int**);
void det(int, int, int**);
int main()

{
	int n, m, i;
	cout << "How many string's?:";
	cin>> n;

	cout << "How many column's?:";
	cin>> m;

	int **a; a = new int *[n];
	for(i=0; i<n; i++)
	a[i] = new int[m];

	vvid(n, m ,a);

	cout << "It's your array:" << endl;
	vivid(n, m, a);

	cout << "It's your array after transformation:" << endl;
    det(n, m, a);
    vivid(n, m, a);
	cin.get();
	cin.get();
	return 0;
}
Код:
void det(int n, int m, int **a)
{
	int i, j;
	for(i=0; i<n; i++)
		for(j=0; j<m; j++)
		{
            if(i%3 && a[i][j]>0 && a[i][j]<=50)
            a[i][j]=-5;
		}
}
DIQUON вне форума Ответить с цитированием
Старый 12.12.2012, 21:38   #5
DIQUON
Форумчанин
 
Регистрация: 01.11.2012
Сообщений: 122
По умолчанию

Или функция должна возвращать значение?
DIQUON вне форума Ответить с цитированием
Старый 12.12.2012, 22:10   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Теперь выдает первую строку за -5 -5 -5
А теперь внимательно сравни то что я написал:
Цитата:
a[i][j]-=5
и то что написано у тебя:
Цитата:
a[i][j]=-5;
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 12.12.2012, 22:14   #7
DIQUON
Форумчанин
 
Регистрация: 01.11.2012
Сообщений: 122
По умолчанию

Я это заметил,думал что ошибка в том что там нет ;,и по этому решил поставить.
Если убрать все равно ошибка(
DIQUON вне форума Ответить с цитированием
Старый 12.12.2012, 22:25   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Пошагово программу проходил? Если нет то саме время пройти.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 12.12.2012, 22:31   #9
DIQUON
Форумчанин
 
Регистрация: 01.11.2012
Сообщений: 122
По умолчанию

Проходил,не могу найти через что ошибка.
DIQUON вне форума Ответить с цитированием
Старый 13.12.2012, 19:21   #10
DIQUON
Форумчанин
 
Регистрация: 01.11.2012
Сообщений: 122
По умолчанию

Если не трудно укажите мне где ошибка
DIQUON вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Одномерный массив и Двумерный массив eugene1437 Общие вопросы C/C++ 15 25.05.2011 19:17
двумерный массив rammstein99 Помощь студентам 0 28.03.2011 11:55
Двумерный массив Арнис Visual C++ 19 13.07.2010 17:20
Двумерный массив Женечка92 Помощь студентам 1 28.05.2010 16:47
Двумерный массив, одномерный массив. Branbal Помощь студентам 14 18.11.2009 12:40