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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.12.2013, 19:15   #1
Вероника99
Форумчанин
 
Регистрация: 15.12.2013
Сообщений: 414
По умолчанию Программа на Си

Задание состоит в том, что даны точки на интервале от min до max, надо найти максимальный отрезок из отрезков, которые проводятся из каждой точки оси абцисс к каждой заданной точке. Проблема в том, что я не могу сохранить максимальные отрезки для каждой точки по оси абцисс и потом из них выбрать максимальный отрезок.
Код:
#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#define K 100
double arr[K];
typedef struct koordynaty
{
double x,y;
}kd;
double *mas;
int main (void)
{

int i,k,h,l;
double max_x,min_x;
double d,r,c,min,max;

puts("Vvedite kol-vo tochek:");
scanf("%i",&l);
mas=(double*)calloc(l,sizeof(double));

if(!mas)
return NULL;
puts("Vvedite interval tochok: min max");
scanf("%lf %lf",&min,&max);
kd mas[K];
for(i=0;i<l;i++)
{
puts("\nVveditе koordunatu (x,y)");
scanf("%lf %lf",&mas[i].x,&mas[i].y);
if(mas[i].x>max||mas[i].x<min)
{
printf("Povtorite vvod");
i--;
}

}
int n;
puts("Koordynatu:");
for(n=0;n<i;n++)
{

printf("(%lf ; %lf)\n",mas[n].x,mas[n].y);
}
double j,g=0,pro_k=0,pri_k=0;
int q;
double s[K];
double *max_gip=arr;
for(min;min<max;min++)
{
for(k=0;k<i;k++)
{
printf("\nMAX X %f MIN X %f ",max,min); //interval
pro_k=mas[k].y;
printf("Protivoleg %lf", pro_k);


if(min<0&&mas[k].x<0)
pri_k=min-mas[k].x;

if(min>0&&mas[k].x>0)
pri_k=mas[k].x-min;
if(min<0&&max>0)
pri_k=abs(min)+mas[k].x;

printf("\nprileg = %f",pri_k);
arr[k]=sqrt(pri_k*pri_k+pro_k*pro_k); // поиск гипотенузы-arr-массив гипотенуз ЗДЕСЬ
printf("\nGipotenyzy %f",arr[k]); // ПРОБЛЕМА, как записывать сюда все максим. отрезки, а
// не только для одной точки оси абцисс?
}

}
for(k=0;k<i;k++)
{
printf("\nARR - %lf",arr[k]);
}
for(q=0;q<k;q++)
{
if(*max_gip<arr[q])
*max_gip=arr[q];
}

printf("\nMax gipotenyza = %f,",*max_gip);

system("pause");

}
Вероника99 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программа на Pascal в Lazarus и программа для одномерного массива целых чисел Yegorka Lazarus, Free Pascal, CodeTyphon 13 20.12.2012 18:02
Программа как программа. вопрос leonidsm Общие вопросы C/C++ 5 02.10.2012 21:30
Программа с применением записей и программа с применение множеств smert99 Помощь студентам 0 16.06.2011 23:14
Программа открыается если есть другая программа. bookkc Паскаль, Turbo Pascal, PascalABC.NET 12 14.10.2009 20:09