С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.78
ReDev1L
0 / 0 / 0
Регистрация: 18.10.2008
Сообщений: 19
#1

Умножение строки на столбец. - C++

21.10.2008, 01:52. Просмотров 1189. Ответов 4
Метки нет (Все метки)

Задача:
Умножение строки с минимальным элементом матрицы на столбец с максимальным элементом.
Код
void EnterString (int a[10][10], int x, int y)
{
	int i,j;
	for (i = 0; i < x; i++)
	{
		printf("Enter %d string\n", i + 1);
		for (j = 0; j < y; j++)
			scanf("%d", &a[i][j]);
	}
}
[COLOR="Red"]int CountArrays (int a, int b, int x, int y, int i, int j, int sum)
{
	int c[10];
	c[j] = 0;
	c[i] = a * b;
	sum = sum + c[j];
	return sum;
}[/COLOR]
void main()
{
	int i,j,x,y;
	int sum = 0;
	int ar[10][10];
	int minString = 0;
	int maxColumn = 0;
	printf("Enter number of stings and col's, 2 3 etc is array with 2 strings and 3 col's\n");
	scanf("%d %d", &x, &y);
	EnterString (ar, x, y);
	int min = ar[0][1];
	int max = ar[0][1];
	printf("Array before operation:\n");
	for (i = 0; i < x; i++)
	{
		printf("\n");
		for (j = 0; j < y; j++)
			printf("%d ", ar[i][j]);
	}
	printf("\n");
	printf("\n");
	for (i = 0; i < x; i++)
	{
		for (j = 0; j < y; j++)
		{
			if (ar[i][j] < min)
			{
				minString = i;
				min = ar[i][j];
			}
		}
	}
	for (j = 0; j < y; j++)
	{
		for (i = 0; i < x; i++)
		{
			if (ar[i][j] > max)
			{
				maxColumn = j;
				max = ar[i][j];
			}
		}
	}
	for (i = 0; i < x; i++)
	{
		for (j = 0; j < y; j++)
		{
			CountArrays (ar[minString][j], ar[i][maxColumn], x, y, i, j, sum);
		}
	}
[COLOR="Blue"]	/*int ar1[10];
	for (i = 0; i < x; i++)
	{
		for (j = 0; j < y; j++)
		{
			ar1[j] = 0;
			ar1[i] = ar[minString][j] * ar[i][maxColumn];
			sum = sum + ar1[j];
		}
	}*/[/COLOR]
	printf("%d\n", sum);
	getch();
}
только вот сумма всегда выходит 0, как исправить? без функции работает.

Добавлено через 55 минут 46 секунд
мна спать, ночные прогеры исправте мою ошибку в ф-и пожалуйста)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.10.2008, 01:52
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Умножение строки на столбец. (C++):

Умножение матрицы на вектор-столбец - C++
День добрый (кому-как) Помогите, а? всю бОшку сломал, выдает Illegal Use of Floating Point не могу найти косяк. #pragma hdrstop ...

Умножение матрицы на вектор-столбец - C++ - C++
Доброго времени суток, вы можете мне подсказать в чем проблема, выдает ошибку E2060 Illegal use of floating point, что за ошибка я не знаю,...

Умножение чисел из строки - C++
Во входном файле in.txt задано целое число в диапазоне от 1 до 1050 и цифра от 2 до 9, например: 63820781937294274912342381 3 ...

Умножение чисел из строки делимых на 3,4,5 - C++
Пользователь вводит ряд положительных чисел, числа делимые на 3,4,5 нужно перемножить и распечатать. Например { 12 , 3 , 14 , 10 , 19 } ...

Строки char: умножение двух чисел - C++
нужно было создать функцию, умножающую два числа (до 30 цифр включительно). эти числа - два char массива. есть один момент, с которым...

Умножение матриц делением на полосы (строки или столбцы) — ленточная схема - C++
Нужна помощь в разборе алгоритма, до меня никак не доходит по какой схеме этот алгоритм работает. ...

4
XuTPbIu_MuHTAu
Эксперт С++
2228 / 743 / 10
Регистрация: 27.05.2008
Сообщений: 1,498
21.10.2008, 08:55 #2
Ваш вызов :
Код
CountArrays(ar[minString][j],ar[i][maxColumn,x,y,i,j,sum);
Естественно,работать не будет,поскольку параметры переданы по значению,а не по адресу.С другой стороны,ваша функция возвращает значение...С третьей стороны,странная какая-то функция...
0
ReDev1L
0 / 0 / 0
Регистрация: 18.10.2008
Сообщений: 19
21.10.2008, 14:49  [ТС] #3
если ставлю указатель, то компилятор ругается.
а без функции всё норм.только препод требует через фу-ю
0
XuTPbIu_MuHTAu
Эксперт С++
2228 / 743 / 10
Регистрация: 27.05.2008
Сообщений: 1,498
21.10.2008, 14:52 #4
Правильно требует. Просто поставить указатель(удивительно!!) - недостаточно. Нужно чуток код поменять.
0
ReDev1L
0 / 0 / 0
Регистрация: 18.10.2008
Сообщений: 19
21.10.2008, 15:08  [ТС] #5
подскажите как?
Знаю что правильно, мне и самому интересно, клёвая штука эта, программирование.
Но как я понял это всё цветочги.
0
21.10.2008, 15:08
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.10.2008, 15:08
Привет! Вот еще темы с ответами:

Задано 4 матрицы. Провести сложение, умножение, умножение на число - C++
Задано 4 матрицы A,B,C,D размером 4х4.Вычеслить такие матрицы: F,G,T. G=3/4 A+B F=B*(2D) T=c/5

Замена строки на столбец в матрице - C++
Разработать программу, которая в матрице размерности nxn меняет местами строку, содержащую элемент с минимальным значением со столбцом,...

Класс Квадратная матрица. Методы: умножение на матрицу, умножение на константу, вывод элементов матрицы на дисплей - C++
Задание: Класс «Квадратная матрица». Методы: умножение на матрицу, умножение на константу, вывод элементов матрицы на дисплей. Нужно...

Замена строки на столбец в двумерном массиве - C++
Здравствуйте! Требуется решить задачку следующего характера: В квадратной матрице A определить номер столбца матрицы, имеющего...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

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