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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.08.2010, 18:04   #1
fort-_-minor
46KSS
Пользователь
 
Аватар для fort-_-minor
 
Регистрация: 26.07.2010
Сообщений: 58
По умолчанию Максимальная высота h

Здравствуйте! Задание такое: Ввести 5 наборов сторон треугольника a, b, c и определить для каких сторон высота h будет максимальной. Тут я программу вроде написал, но не могу понять то ли она делает: Должна искать максимальное а, b, c в каждом вводе и выводить по результатам новую то есть 6 высоту h, или просто выводить для какого набора сторон высота будет максимальной?. Вот мой код:
Код:
#include <stdafx.h>
#include <cmath>
#include <iostream>
#include <iomanip>
using namespace std;
void main()
{
	float a, b, c, amax, bmax, cmax, p , h, hmax;
	short flag=0;
	for(int z=0; z<5; ++z)
	{
		cout<<"Enter a:"; cin>>a;
		cout<<"Enter b:"; cin>>b;
		cout<<"Enter c:"; cin>>c;
		p=(a+b+c)/2;
		h=2*sqrt(p*(p-a)*(p-b)*(p-c))/a;
		cout<<"h="<<fixed<<setprecision(2)<<h<<"   a="<<a<<"   b="<<b<<"  c="<<c<<endl;
		if (!flag)
		{	amax=a;
			bmax=b;
			cmax=c;
			hmax=h;
			flag=1;
		}
		else if(h>hmax)
		{
			amax=a;
			bmax=b;
			cmax=c;
			hmax=h;
		}
	}
	cout<<"\n for a="<<fixed<<setprecision(1)<<amax<<"   b="<<bmax<<"   c="<<cmax<<" hmax="<<fixed<<setprecision(1)<<hmax<<endl;
	cin.get();
}
Чтобы не плодить темы есть еще 2 задача!: Ввести координаты 10 точек на плоскости и определить в какой из четвертей точек будет больше всего. Тут если кто знает напишите пожалуйста алгоритм, с кодом попробую разобраться сам! Спасибо.
fort-_-minor вне форума Ответить с цитированием
Старый 02.08.2010, 18:16   #2
Hacker19_90
Delphi Warrior
Старожил
 
Аватар для Hacker19_90
 
Регистрация: 15.08.2008
Сообщений: 2,502
По умолчанию

Код:
#include <iostream.h>

int main ()
{
    int perv, vtor, tret, chet;
    int x, y, i;
    for (i = 0; i< 10; i++)
    {
        cout << "Vvedite koordinatu x" << endl;
        cin >> x;
        cout << "Vvedite koordinatu y" << endl;
        cin >> y;
        if (x > 0) 
        {
             if (y > 0) perv++
             else chet++;
        }
        else
        {
            if (y > 0) vtor++
             else tret++;
         }
    }
    // ну а потом сравни и всё!!!
    return 0;
}
Mess with the best, die like the rest. (с) Hackers
Лабораторные, курсовые на Delphi\Pascal\C++
ya.flex-freelance@yandex.ru Icq - 636-954-303
Hacker19_90 вне форума Ответить с цитированием
Старый 02.08.2010, 20:44   #3
fort-_-minor
46KSS
Пользователь
 
Аватар для fort-_-minor
 
Регистрация: 26.07.2010
Сообщений: 58
По умолчанию

Пока только так дальше думаю:
Код:
#include <stdafx.h>
#include <cmath>
#include <iostream>
using namespace std;
void main()
{
    int I, II, III, IV;
    int x, y, i;
    for (i=0; i<10; i++)
    {
        cout<<"Enter your coords:"<<endl;
        cout<<"Enter coord x"<<endl;
        cin>>x;
        cout<<"Enter coord y"<<endl;
        cin>>y;
		if (x>0 && y>0) 
		{
			cout<<"Your coords are in the I quarter"<<endl;
		}
		else if (x<0 && y<0) 
		{
			cout<<"Your coords are in the III quarter"<<endl;
		}
		else if (x<0 && x>0) 
		{
			cout<<"Your coords are in the II quarter"<<endl;
		}
		else cout<<"Your coords are in the IV quarter"<<endl;
		
	}
	cin.get();
}

Так , кхм я в вашем коде только увидел что не все так просто Ув. Хакер, ща пойду дальше разбираться.

Последний раз редактировалось fort-_-minor; 02.08.2010 в 20:47.
fort-_-minor вне форума Ответить с цитированием
Старый 02.08.2010, 20:52   #4
Hacker19_90
Delphi Warrior
Старожил
 
Аватар для Hacker19_90
 
Регистрация: 15.08.2008
Сообщений: 2,502
По умолчанию

Цитата:
Сообщение от fort-_-minor Посмотреть сообщение
Пока только так дальше думаю:
Так , кхм я в вашем коде только увидел что не все так просто Ув. Хакер, ща пойду дальше разбираться.
А что сложного? Осталось ток сравнить 4 числа!
Mess with the best, die like the rest. (с) Hackers
Лабораторные, курсовые на Delphi\Pascal\C++
ya.flex-freelance@yandex.ru Icq - 636-954-303
Hacker19_90 вне форума Ответить с цитированием
Старый 02.08.2010, 22:53   #5
arcer
Пользователь
 
Регистрация: 26.01.2010
Сообщений: 42
По умолчанию

Цитата:
Сообщение от fort-_-minor Посмотреть сообщение
Здравствуйте! Задание такое: Ввести 5 наборов сторон треугольника a, b, c и определить для каких сторон высота h будет максимальной. Тут я программу вроде написал, но не могу понять то ли она делает: Должна искать максимальное а, b, c в каждом вводе и выводить по результатам новую то есть 6 высоту h, или просто выводить для какого набора сторон высота будет максимальной?. Вот мой код:
Код:
#include <stdafx.h>
#include <cmath>
#include <iostream>
#include <iomanip>
using namespace std;
void main()
{
	float a, b, c, amax, bmax, cmax, p , h, hmax;
	short flag=0;
	for(int z=0; z<5; ++z)
	{
		cout<<"Enter a:"; cin>>a;
		cout<<"Enter b:"; cin>>b;
		cout<<"Enter c:"; cin>>c;
		p=(a+b+c)/2;
		h=2*sqrt(p*(p-a)*(p-b)*(p-c))/a;
		cout<<"h="<<fixed<<setprecision(2)<<h<<"   a="<<a<<"   b="<<b<<"  c="<<c<<endl;
		if (!flag)
		{	amax=a;
			bmax=b;
			cmax=c;
			hmax=h;
			flag=1;
		}
		else if(h>hmax)
		{
			amax=a;
			bmax=b;
			cmax=c;
			hmax=h;
		}
	}
	cout<<"\n for a="<<fixed<<setprecision(1)<<amax<<"   b="<<bmax<<"   c="<<cmax<<" hmax="<<fixed<<setprecision(1)<<hmax<<endl;
	cin.get();
}
Чтобы не плодить темы есть еще 2 задача!: Ввести координаты 10 точек на плоскости и определить в какой из четвертей точек будет больше всего. Тут если кто знает напишите пожалуйста алгоритм, с кодом попробую разобраться сам! Спасибо.
1-я задача: вычислялась площадь по Герону и находилась высота (думаю сами знаете как)
2-я задача: А что, сложно для точки определить, в какой четверти она лежит?
arcer вне форума Ответить с цитированием
Старый 03.08.2010, 18:16   #6
fort-_-minor
46KSS
Пользователь
 
Аватар для fort-_-minor
 
Регистрация: 26.07.2010
Сообщений: 58
По умолчанию

Всем спасибо, получится вот так:
Код:
/////////////////////////////////////////////////////////////////////////////////////////
//Ввести 10 раз координаты х, у и определить в какой четверти их будет больше всего.
/////////////////////////////////////////////////////////////////////////////////////////
#include <iostream>
#include <algorithm>
/////////////////////////////////////////////////////////////////////////////////////////
void count_points()
{
    int        quarter_count[5]  = {0}; 
    const int  N                 = 10;
    for(int i = 0; i < N; ++i)
    {
        std::cout << std::endl
                  << "X["
                  << i + 1
                  << "] = ";
        int x;
        std::cin >> x;
        std::cout << "Y["
                  << i + 1
                  << "] = ";
        int y;
        std::cin >> y;
        if(x >= 0)
        {
            if(y >= 0)
            {
                ++quarter_count[1];
            }
            else
            {
                ++quarter_count[4];
            }
        }
        else
        {
            if(y >= 0)
            {
                ++quarter_count[2];
            }
            else
            {
                ++quarter_count[3];
            }        
        }
    }
    std::cout << "Most of all points in a quarter # " 
              << std::max_element
                     (
                         quarter_count, 
                         quarter_count + sizeof(quarter_count) / sizeof(quarter_count[0])
                     ) - quarter_count
              << "."
              << std::endl;
}
/////////////////////////////////////////////////////////////////////////////////////////
int main()
{    
    count_points();
    return 0;
}
fort-_-minor вне форума Ответить с цитированием
Старый 04.08.2010, 13:41   #7
fort-_-minor
46KSS
Пользователь
 
Аватар для fort-_-minor
 
Регистрация: 26.07.2010
Сообщений: 58
По умолчанию

Еще вот так можно:
Код:
#include <stdafx.h>
#include <cmath>
#include <iostream>
using namespace std;
void main()
{
    int I=0, II=0, III=0, IV=0, no=0, x, y, i;
    for (i=0; i<10; i++)
    {
        cout<<"Enter your coords:"<<endl;
                cout<<"Enter coord x"<<endl;
        cin>>x;
        cout<<"Enter coord y"<<endl;
        cin>>y;
        if (x>0 && y>0) I++;
        if (x<0 && y<0) III++; 
        if (x<0 && y>0) II++;
        if (x>0 && y<0) IV++;
                if (x==0 && y==0) no++;
    }
        cout<<"Your coords are in the I quarter"<<"   I="<<I<<endl;
        cout<<"Your coords are in the III quarter"<<"   III="<<III<<endl;
        cout<<"Your coords are in the II quarter"<<"   II="<<II<<endl;
        cout<<"Your coords are in the IV quarter"<<"   IV="<<IV<<endl;
        cout<<"Your coords are not belong to any quarter"<<"   no="<<no<<endl;
 
                if(I > II && I > III && I > IV)
                        cout << "Most Popular Quarter is I" << std::endl;
 
                else if(II > III && II > IV && II > I)
                         cout << "Most Popular Quarter is II" << std::endl;
 
                else if(III > IV && III > II && III > I)
                         cout << "Most Popular Quarter is III" << std::endl;
 
                else if(IV > III && IV > II && IV > I)
                         cout << "Most Popular Quarter is IV" << std::endl;
 
                else
                         cout << "Not Most Popular Quarter" << std::endl;
    
    system("PAUSE");
}

Последний раз редактировалось fort-_-minor; 04.08.2010 в 13:44.
fort-_-minor вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Максимальная по модулю разность (Массивы) koonee Помощь студентам 2 21.06.2010 20:28
Максимальная длина слова Anarki Общие вопросы C/C++ 4 30.09.2009 00:10
Максимальная высота элемента predtech HTML и CSS 2 23.07.2009 13:51
Какая максимальная длина string? K1ller Общие вопросы C/C++ 2 25.11.2008 19:38