Форум программистов, компьютерный форум CyberForum.ru

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

Войти
Регистрация
Восстановить пароль
 
Ириска5
0 / 0 / 0
Регистрация: 08.05.2011
Сообщений: 40
#1

структуры вопрос - C++

13.05.2011, 20:44. Просмотров 542. Ответов 12
Метки нет (Все метки)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#include <iostream>
#include <cmath>
using namespace std;
 
struct point
{
    double x,y,z;
};
 
double dlina(point a,point b)
{
    return sqrt(pow(a.x-b.x,2)+pow(a.y-b.y,2)+pow(a.z-b.z,2));
}
double triangle(double d,double e,double f,double p,double max)
{
    if ((d+e>f) && (d+f>e) && (f+e>d))
        max=1;
    else max=0;
            
    return max;
}
 
int main()
{
    point a[10];
    double d,e,f,p,max,t=0;
    int n;
    cout<<"введ колич точек"<<endl;
    cin>>n;
    for(int i=1;i<=n;++i)
    {
        cout<<"введите координаты"<<endl;
        cin>>a[i].x>>a[i].y>>a[i].z;
    }
    {for(int i=1;i<=n-2;++i)
        for(int j=i+1;j<=n-1;++j)
            for(int k=j+1;k<=n;++k)
            {
                d=dlina(a[i],a[j]);
                e=dlina(a[j],a[k]);
                f=dlina(a[k],a[i]);
                p=d+e+f;
                triangle(d,e,f,p,max);
                if ((max==1) && (p>t))
                    t=p;
                
 
            }}
    cout<<"max="<<t;
    return 0;
}

подскажите пжл что в проге не так,просто мне мой максимум печатает все время равный нулю,как будто не сравнивает - (p>t) -
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.05.2011, 20:44     структуры вопрос
Посмотрите здесь:

Небольшой вопрос по заполнению структуры - C++
В первой строке ошибка, пропущена точка с запятой.. Поправте, как правильно заполнить Zapravki_AZS.AZS = {{ &quot;Lukoil&quot;; ...

Вопрос. Чем отличаются структуры в С++ от классов в C++ - C++
Приветствую. Никак не могу понять чем же все таки отличаются структуры от классов, кроме того что в структуре по умолчанию все члены...

Вопрос - C++
есть командная строка cmd, в ней постоянно приходиться прописывать всякие net sh, собствено вопрос: можли написать программу которая...

Вопрос - C++
Никто не знает как можно вот эту программу переделать в язык паскаль #include &lt;stdio.h&gt; #include &lt;conio.h&gt; #include &lt;malloc.h&gt; void...

Вопрос по C++ - C++
Сколько байт памяти займут займут три структурных переменные типа time, если структура вмещает 3 поля типа int

вопрос.. - C++
как найти количество точек, координаты которых-целые числа, находящиеся в промежутке, который задан неравеннством...

Вопрос - C++
Приветствую Вас! 1. Необходимо просто описать как это должно работать: Дано: {max (a,b), y= {min(a,b), {|a+b|, если х=0,...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Jupiter
Каратель
Эксперт С++
6553 / 3973 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
13.05.2011, 20:49     структуры вопрос #2
а так?
C++
1
if (max == 1.0 && p > t)
skaa
Хочу в Исландию
1027 / 826 / 75
Регистрация: 10.11.2010
Сообщений: 1,626
13.05.2011, 20:52     структуры вопрос #3
В функции
C++
1
double triangle(double d,double e,double f,double p,double max)
как я понял параметру max присваивается значение которое будет использоваться после обращения к функции. Если мы хотим этого, то надо так:
C++
1
2
3
4
5
6
double triangle(double d,double e,double f,double p,double *pmax)
{
  ...
  *pmax=3.14;
  ...
}
, а обращаться так:
C++
1
2
3
double max;
...
triangle(d,e,f,p,&max);
.
Ириска5
0 / 0 / 0
Регистрация: 08.05.2011
Сообщений: 40
13.05.2011, 21:03  [ТС]     структуры вопрос #4
Добавлено через 2 минуты
skaa, а в функции triangle нужно писать return *max ?
skaa
Хочу в Исландию
1027 / 826 / 75
Регистрация: 10.11.2010
Сообщений: 1,626
13.05.2011, 22:45     структуры вопрос #5
Извините, не заметил что функция возвращает max... Но в таком случае параметр max вообще не нужен, а обращение к ней должно быть такое:
C++
1
max=triangle(d,e,f,p);
.

Добавлено через 7 минут
А что надо найти, треугольник с максимальным периметром?
Ириска5
0 / 0 / 0
Регистрация: 08.05.2011
Сообщений: 40
13.05.2011, 22:57  [ТС]     структуры вопрос #6
да, с максимальным периметром,но я не понимаю почему тогда max не нужен, что мне тогда должна возвращать функция?
gooseim
Эксперт С++
508 / 412 / 37
Регистрация: 23.09.2010
Сообщений: 1,159
13.05.2011, 23:02     структуры вопрос #7
Цитата Сообщение от Ириска5 Посмотреть сообщение
да, с максимальным периметром,но я не понимаю почему тогда max не нужен, что мне тогда должна возвращать функция?
Зачем ей что-то возвращать, если то, что она возвращает вы не читаете?
Ириска5
0 / 0 / 0
Регистрация: 08.05.2011
Сообщений: 40
13.05.2011, 23:04  [ТС]     структуры вопрос #8
gooseim, но мне необходимо проверить то условие которое содержится в вспомогат фунции и если оно верное то считать дальше
gooseim
Эксперт С++
508 / 412 / 37
Регистрация: 23.09.2010
Сообщений: 1,159
13.05.2011, 23:07     структуры вопрос #9
Цитата Сообщение от Ириска5 Посмотреть сообщение
triangle(d,e,f,p,max); if ((max==1) && (p>t)) t=p;
max у вас как был неинициализирован, так им и остался, потому что вы ему ничего не присваиваете.

Добавлено через 1 минуту
напишите так и все должно сработать:
C++
1
double triangle(double d,double e,double f,double p,double &max)
Ириска5
0 / 0 / 0
Регистрация: 08.05.2011
Сообщений: 40
13.05.2011, 23:08  [ТС]     структуры вопрос #10
Цитата Сообщение от gooseim Посмотреть сообщение
max у вас как был неинициализирован, так им и остался, потому что вы ему ничего не присваиваете.
ну а если я сделаю так:

double triangle(double d,double e,double f,double p,double *max)
{
if ((d+e>f) && (d+f>e) && (f+e>d))
*max=1;
else *max=0;

return *max;
}
...
triangle(d,e,f,p,&max);


так мне он считает все верно,но так можно вообще делать?
gooseim
Эксперт С++
508 / 412 / 37
Регистрация: 23.09.2010
Сообщений: 1,159
13.05.2011, 23:12     структуры вопрос #11
Цитата Сообщение от Ириска5 Посмотреть сообщение
так мне он считает все верно,но так можно вообще делать?
Так правильно и делать можно, но мне больше нравится по ссылке, как я показывал. Тогда меньше кода переписывать.

Добавлено через 1 минуту
Только у вас получается дублирование выходной информации. У вас значение возвращается через return, еще в параметре. Зачем такое дублирование?
Ириска5
0 / 0 / 0
Регистрация: 08.05.2011
Сообщений: 40
14.05.2011, 00:32  [ТС]     структуры вопрос #12
gooseim, спасибо я проверила,все работает,спасибо

Добавлено через 1 час 15 минут
gooseim, не могли бы вы мне как опытный пользователь помочь еще в одной задаче?

Добавлено через 4 минуты
задача-Получить все меньшие 100 натуральные числа,которые являются палиндромами как в десятичной,так и в двоичной системах. - Вот сделала задачу,но она неправильно работает и я уже в ней сама запуталась.Полиндром это например-404 (в десятичной системе) или 100001 (в двоичной системе). я беру все числа до 100 и делю их на 2 а каждый остаток записываю в элемент массива, чтобы потом сравнить там значения. Помогите пжл исправить задачу.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#include <iostream>
using namespace std;
int i,j;
void dvoy(int c,int b,int *d,int n,int k)
{
    for(k=1;k<=100;++k)
    if(i!=0)
    {
        c=i%2;
        i=i/2;
        d[j]=c;
        cout<<"d["<<j<<"]="<<d[j]<<endl;
        ++j;
        n=j-1;
 
 
    }
 
 
}
 
int main()
{
    int c,b,n,k,a=0;
    int *d=new int[n];
    for(i=10;i<=100;++i)
    {
        dvoy(c,b,d,n,k);
    for(j=1;j<=n;++j)
        {
            if (d[j]==d[n-j]);
            a+=1;
        }
    cout<<"a="<<a<<endl;
    delete []d;
    if (a==n/2)
    cout<<"i="<<i<<endl;
    }
    return 0;
}
 Комментарий модератора 
Используйте теги форматирования кода!
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.05.2011, 00:58     структуры вопрос
Еще ссылки по теме:

Вопрос по #if - C++
const LEVEL = 4; #if LEVEL == 5 cout &lt;&lt;5&lt;&lt;endl; #elif LEVEL == 4 cout &lt;&lt;4&lt;&lt;endl; #else cout...

Вопрос - C++
Я знаю что вопрос покажится вам смешным но укажите пожалуйста ошибку я никак не могу найти а помочь некому #include&lt;iostream&gt; int...

Вопрос - C++
а зачем все эти задачки? и где то читал что программисту нужно знать матрицы-а зачем?

вопрос - C++
здрасте всем ,хочу научиться программировать ,подскажите где взять среду с\с++ и с чего вообще начать обучение ,я чайник полный :)

Вопрос - C++
стоит ли учить язык програмирования С++? говорят язык отличный. И чем он хуже Делфи,Паскаля,Асемблер,ЛУА(ЛОА непомню правильности) , ПХП,...


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

Или воспользуйтесь поиском по форуму:
asics
Freelance
Эксперт С++
2846 / 1783 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
14.05.2011, 00:58     структуры вопрос #13
Цитата Сообщение от Ириска5 Посмотреть сообщение
Получить все меньшие 100 натуральные числа,которые являются палиндромами как в десятичной,так и в двоичной системах
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#include <iostream>
#include <sstream>
#include <string>
#include <algorithm>
 
std::string int_to_str(int one, std::string r = ""){
  std::ostringstream ost;
  ost << one;
  r = ost.str();
  return r;
}
 
std::string dec_to_bin(int one){
  std::string res;
  while(one){
    std::string first;
    res += int_to_str(one % 2, first);
    one /= 2;
  }
  std::reverse(res.begin(), res.end());
  return res;
}
 
bool is_pal(std::string _s){
  return std::equal(_s.begin(), _s.end(), _s.rbegin());
}
 
int main(){
  for(int i = 0; i <= 100; ++i)
    if( is_pal(int_to_str(i)) && is_pal(dec_to_bin(i)) )
      std::cout << i << '\n';
  return 0;
}
Yandex
Объявления
14.05.2011, 00:58     структуры вопрос
Ответ Создать тему
Опции темы

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