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

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

Вернуться   Форум программистов > C/C++ программирование > Visual C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.05.2014, 20:38   #1
zla9_kolu4ka
Форумчанин
 
Регистрация: 16.09.2013
Сообщений: 149
По умолчанию двумерный массив

Код:
#define N 3	
#define M 2	
double xy[N][M];
a=dist(xy[0],xy[1],M); //не пойму, массив же двумерный, как происходит работа при такой записи??
Вот весь код, может понадобится, вычисляется площадь треугольника
Код:
#include <stdlib.h>//ввод вывод
#include <stdio.h>
#include <locale.h>	//кириллица
#include <math.h>


#define N 3	//строки
#define M 2		


double dist(double xy1[], double xy2[], int m);

double heron(double,double,double);

void print(const wchar_t format[], double);
void input(double xy[], int m, int i);
void triangle(void);

int main(){
	setlocale(LC_CTYPE, ".866");
	triangle();
	system("pause");
	return 0;
}


void triangle(){
	//описание переменных
	double xy[N][M];	//координаты вершин
	double a,b,c,S;//стороны и площадь
	int i;



	//вводщ исходных данных
	for(i=0;i<N;++i)
		input(xy[i],M,i+1);


	//вычисления
	a=dist(xy[0],xy[1],M);
	b=dist(xy[1],xy[2],M);
	c=dist(xy[2],xy[0],M);

	S=heron(a,b,c);
	print(L"\nПлощадь треугольника = %.3f\n",S);

}


double dist(double xy1[], double xy2[], int m){
	double s=0.0;
	int j;
	for(j=0;j<m;++j)
		s+=pow(xy1[j]-xy2[j],2);
	return sqrt(s);
}

double heron(double a, double b, double c){
	double p = (a+b+c)/2;
	return sqrt(p*(p-a)*(p-b)*(p-c));
}

void print(const wchar_t format[], double s){
	wprintf(format,s);
}


void input(double xy[], int m, int i){
	int j;
	wprintf(L"Введите координаты %d-й точки\n",i);
	for(j=0;j<m;++j)
		do{
			printf("%c = ", 'x'+j);
			fflush(stdin);
		}while(scanf("%lg", &xy[j])!=1);
}
zla9_kolu4ka вне форума Ответить с цитированием
Старый 05.05.2014, 21:41   #2
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,330
По умолчанию

К двумерным массивам обращение через двойные квадратные скобки - []
например: xy[0][1]

В вашем случае удобней использовать массив структур.
waleri вне форума Ответить с цитированием
Старый 05.05.2014, 21:49   #3
zla9_kolu4ka
Форумчанин
 
Регистрация: 16.09.2013
Сообщений: 149
По умолчанию

Цитата:
К двумерным массивам обращение через двойные квадратные скобки - []
например: xy[0][1]
это я знаю, поэтому и спрашиваю, код рабочий, значит так как у меня тоже можно, только как он работает не пойму
zla9_kolu4ka вне форума Ответить с цитированием
Старый 05.05.2014, 22:30   #4
Bugrimov
C/C++, Java
Участник клуба
 
Аватар для Bugrimov
 
Регистрация: 28.03.2012
Сообщений: 1,679
По умолчанию

Что именно не понятно?
"Keep it simple" - придерживайтесь простоты!
Уильям Оккам - "Не следует множить сущее без необходимости"
Сложность - враг простоты и удобства!
Bugrimov вне форума Ответить с цитированием
Старый 05.05.2014, 22:56   #5
zla9_kolu4ka
Форумчанин
 
Регистрация: 16.09.2013
Сообщений: 149
По умолчанию

Цитата:
Что именно не понятно?
ДА я уж понял вроде, массив двумерный, но передать в функцию его можем как одномерный, так вроде, хотя нет, не то, но вот это и не пойму

Последний раз редактировалось zla9_kolu4ka; 05.05.2014 в 23:05.
zla9_kolu4ka вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Java: Дан двумерный массив чисел А размером 6х6 и одномерный массив Х из 6-ти чисел. Заменить первые три строки массива A vikysha55 Помощь студентам 1 16.04.2014 10:50
Двумерный массив развернуть в одномерный массив по строкам[QBASIC] TrueStyle777 Помощь студентам 3 29.05.2013 21:56
Одномерный массив и Двумерный массив eugene1437 Общие вопросы C/C++ 15 25.05.2011 19:17
Двумерный массив. subbass Общие вопросы C/C++ 2 25.05.2011 18:29
Двумерный массив, одномерный массив. Branbal Помощь студентам 14 18.11.2009 12:40