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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 28.11.2010, 12:03   #1
w0lf16
 
Регистрация: 04.10.2009
Сообщений: 9
По умолчанию С++ работа с матрицами

Дана матрица A(n, m). Определить k – количество «особых» элементов массива А, считая элемент особым, если в его строке слева от него находятся элементы, меньшие его, а справа – большие.

программа не выполняет задания помогите плиз с решением этого вопроса.
вот код программы:
Код:
#include <stdio.h>
#include <vcl.h>
#include <math.h>
#include <iostream.h>
#include <conio.h>
#pragma hdrstop

main() {
int i,j,n,m,k;



printf("n=? ");
	scanf("%d", &n);
	if (n<1 || n>20) {
		printf("Invalid n! \nPress any key");
		getch();
		return 0;
	}

printf("m=? ");
scanf("%d", &m);
if (m<1 || m>20) {
printf("Invalid m! \nPress any key");
getch();
return 0;
	}


int **a;

a = (int **)malloc(n*sizeof(int*));
for (int i=0; i < n; i++)
{
a[i] = (int *)malloc(n*sizeof(int));
for (int j=0; j <m; j++)
{
scanf("%d", &a[i][j]);
}
printf("\n")  ;       }

k=0;
for(int k=0;i<(n);k++){
 for(int i=1;i<(m-1);i++){
  k+=((a[k][i]>a[k][i-1])&&(a[k][i]<a[k][i+1]));
 }
}

 for (i = 0; i <n; i++) {
   printf ("\n") ;
 for (j = 0; j <m; j++){
 printf ("%d ",a[i][j]);}

 }
printf("\niskomij element   %d",k);
getch();
}

Последний раз редактировалось Stilet; 28.11.2010 в 16:43.
w0lf16 вне форума Ответить с цитированием
Старый 28.11.2010, 14:24   #2
eoln
Старожил
 
Аватар для eoln
 
Регистрация: 26.04.2008
Сообщений: 2,689
По умолчанию

Цитата:
Сообщение от w0lf16 Посмотреть сообщение
слева от него находятся элементы, меньшие его, а справа – большие.
Имеется ввиду что ВСЕ элементы слева меньшие и ВСЕ элементы справа большие? Тогда нужен ещё один цикл.
Кроме этого неправильно выделяется память и перепутаны строки со столбцами
Код:
int main()
{
	int i,j,n,m,k,c;
	printf("n=? ");
	scanf("%d", &n);
	if (n<1 || n>20)
	{
		printf("Invalid n! \nPress any key");
		getch();
		return 0;
	}

	printf("m=? ");
	scanf("%d", &m);
	if (m<1 || m>20)
	{
		printf("Invalid m! \nPress any key");
		getch();
		return 0;
	}


	int **a;

	a = (int **)malloc(m*sizeof(int*));
	for (int i=0; i < m; i++)
	{
		a[i] = (int *)malloc(n*sizeof(int));
		for (int j=0; j <n; j++)
		{
			a[i][j]=rand()%9+1;//scanf("%d", &a[i][j]);
		}
		//printf("\n") ;
	}

	c=0;
	for (i = 0; i <m; i++)
	for (j = 1; j <n-1; j++)
	{
		bool b=true;
		for (k=0;k<n;k++)
		if ( ((a[i][k]>a[i][j])&&(k<j)) || ((a[i][k]<a[i][j])&&(k>j)) )
		{
			b=false;
			break;
		}
		if (b)
		{
			c++;
			printf("[%d,%d]=%d\n",i,j,a[i][j]);
		}
	}

	for (i = 0; i <m; i++)
	{
		printf ("\n") ;
		for (j = 0; j <n; j++)
		{
			printf ("%d ",a[i][j]);
		}

	}
	printf("\niskomij element %d",c);
	getch();
}
Ну и код на форуме надо красиво оформлять
eoln вне форума Ответить с цитированием
Старый 28.11.2010, 14:43   #3
w0lf16
 
Регистрация: 04.10.2009
Сообщений: 9
По умолчанию

спасибо большое
w0lf16 вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с матрицами Rikki-Tikki Помощь студентам 11 19.12.2010 14:58
Работа с матрицами (норма матрицы, работа со строками) Neitrosha Помощь студентам 1 26.11.2010 20:19
C++ работа с матрицами. Farsait Общие вопросы C/C++ 2 19.01.2010 02:57
help!!! работа с матрицами Zagran Паскаль, Turbo Pascal, PascalABC.NET 4 08.01.2007 15:54