Вопрос по С++

Пух

كنت بلهاء
Модератор
Начиная с Windows Vista, в DOS приложениях не поддерживается работа в полноэкранном режиме. Ставь DosBox или XP Mode.
Спасибо, нагуглил про ДосБокс. Запустил через него С++, запустилось. Даже в полноэкранном режиме. Только проблема в том, что проги не работают))
"unable to open include file STDIO.H"
и так со всеми файлами)
 

=RiZo=

ONE SHOT - ONE HIT
Установи себе XP Mode, и таких проблем не должно быть. Ну или постав VirtualBox и туда хрюшку закинь.
 

Ashtaret

Филаретовый пизироq
Код:
#include<stdio.h>
#include<conio.h>
#include<math.h>
float obh(struct geron *S);
struct geron
{int a,b,c;
float p;};
void main()
{
struct geron S1,S2={2,3,4};
clrscr();
puts("vvedit storoni dlya S1:\n");
scanf("%i%i%i",&S1.a,&S1.b,&S1.c);
printf("plowa trikytnika za formuloiu gerona dlya S1 =%7.2f.\n",obh(&S1));
printf("plowa trikytnika za formuloiu gerona dlya S2 =%7.2f.\n",obh(&S2));
getch();
}
float obh(struct geron *S)
{

(*S).p=((*S).a+(*S).b+(*S).c)/2;
return sqrt(((*S).p-(*S).a)*((*S).p-(*S).b)*((*S).p-(*S).c));

}
При выводе на экран пишет 0.00=( немогу ошибку найти =(
 

Пух

كنت بلهاء
Модератор
Код:
#include<stdio.h>
#include<math.h>

struct geron{
  int a;
  int b;
  int c;
};

float obh(struct geron *ptr){
  float p;
  p=(ptr->a + ptr->b + ptr->c)/2.0;
  return sqrt(p*(p-ptr->a)*(p-ptr->b)*(p-ptr->c));
}

int main(){
  struct geron s1,  s2={2,3,4}, *ptrs1=&s1, *ptrs2=&s2;
  scanf("%d%d%d",&s1.a,&s1.b,&s1.c);
  printf("s1=%2.2f, s2=%2.2f",obh(ptrs1),obh(ptrs2));
  return 0;
}
вроде так.

Можно исправить быстро твой код, там 2 ошибки:

1)
(*S).p=((*S).a+(*S).b+(*S).c)/2;
int / int = int.
нужно делать примерно так:
(*S).p=((*S).a+(*S).b+(*S).c)/2.0;
int / float = float;

2)формула Герона
p=(a+b+c)/2;
S=sqrt(p*(p-a)*(p-b)*(p-c));
у тебя формула немного другая..
 
Останнє редагування:

Ashtaret

Филаретовый пизироq
Код:
#include<stdio.h>
#include<math.h>

struct geron{
  int a;
  int b;
  int c;
};

float obh(struct geron *ptr){
  float p;
  p=(ptr->a + ptr->b + ptr->c)/2.0;
  return sqrt(p*(p-ptr->a)*(p-ptr->b)*(p-ptr->c));
}

int main(){
  struct geron s1,  s2={2,3,4}, *ptrs1=&s1, *ptrs2=&s2;
  scanf("%d%d%d",&s1.a,&s1.b,&s1.c);
  printf("s1=%2.2f, s2=%2.2f",obh(ptrs1),obh(ptrs2));
  return 0;
}
вроде так.

Можно исправить быстро твой код, там 2 ошибки:

1)
int / int = int.
нужно делать примерно так:

int / float = float;

2)формула Герона

у тебя формула немного другая..
все спасибо исправил
Код:
(*S).p=((*S).a+(*S).b+(*S).c)/2.0;
return sqrt((*S).p*((*S).p-(*S).a)*((*S).p-(*S).b)*((*S).p-(*S).c));
пашед
 

Pain+

New Member
Подскажите пожалуйста мне нужен массив 10000000001 елементов и больше, динамически пробовал, компилятор ругается, как еще можно создать?
или просто создать указатель и работать сним как с массивом в надежде что эти ячейки памяти не будут задейстованы?
 

TraNceR

Member
купи 10 гигов памяти и поставь 64тирех битную винду и молись :)
то число не помещается в 32 бита, плюс всеавно скорее всего прога упадет.
Скорее всего в зависимости от того что тебе нада самому чтото вроде свопа делать из большого файла.

но скорее всего ты чтото нето задумал :)
 
Зверху