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

Площади прямоугольников - C++

Восстановить пароль Регистрация
 
Gabberr
 Аватар для Gabberr
101 / 101 / 17
Регистрация: 13.10.2009
Сообщений: 402
04.03.2010, 21:52     Площади прямоугольников #1
Здраствуйте!я начинающий на с/с++
написал программу которая вычисляет площадь пересечения прямоугольников,вылазит ошибка
Помогите пожалуйста исправить
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
#include <stdio.h>
#include <math.h>
void main()
{printf("ââåäèòå êîëè÷åñòâî ïðÿìîóãîëüГ*èêîâ ,Г*ГҐ ìååå äâóõ");
 int a,b,c,d,a1,b1,c1,d1,n;  
 do {
     scanf("%f",&n);
     }while (n<=1);
 printf("ГЈГ*ГЎГ*ðèòû ïåðâîãî ïðÿìîóãîëüГ*ГЁГЄГ* (a<b),(c<d)");    
 do {
     scanf("%f%f%f%f",&a,&b,&c,&d);
     }while ((a>=b)&&(c>=d));
 for(int i=1;i<=n-1;i++){
         printf("ââåäèòå ñëåäóþùèé ïðÿìîóãîëüГ*ГЁГЄ");
         scanf("%f%f%f%f",&a1,&b1,&c1,&d1);
         if ((b<=a1) || (d<=c1) || (b1<a) || (d1<c))
         printf("ïðÿìîóãîëüГ*ГЁГЄГЁ Г*ГҐ ïåðåñåêГ*ГѕГІГ±Гї");
         else{
              if (a<a1) 
                  a=a1;
              if (b>b1) 
                  b=b1;
              if (c<c1) 
                  c=c1;
              if (d>d1) 
                  d=d1;
              s=(b-a)*(d-c);    
              scanf("ïëîùГ*äü ïåðåñå÷åГ*ГЁГї =%f",s); 
              }    
                         }
return;                         
}

если нужно вот аналог программы на паскале
Pascal
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
  uses crt;
var
   i,n,a,b,c,d,a1,b1,c1,d1,s:integer;
begin
  clrscr;
 
   writeln('введите количество прямоугольников (не меее двух)');
 repeat
   readln(n);
 until n>1;
   writeln('введите габариты первого прямоугольника (a<b),(c<d)');
 repeat
   readln(a,b,c,d)
 until (a<b) and (c<d);
 
 for i:=1 to n-1 do
 begin
  writeln('введите следующий прямоугольник');
  readln(a1,b1,c1,d1);
  if (b<=a1) or (d<=c1) or (b1<a) or (d1<c) then
    writeln('прямоугольники не пересекаются')
  else
  begin
   if a<a1 then
     a:=a1;
   if b>b1 then
     b:=b1;
   if c<c1 then
     c:=c1;
   if d>d1 then
     d:=d1;
   s:=(b-a)*(d-c);
   writeln('площадь пересечения равна ',s);
  end;
 end;
end.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
rrrFer
Заблокирован
04.03.2010, 22:02     Площади прямоугольников #2
Gabberr,
переменная "s" не обьявлена.
те переменные что обьявлены должны быть типа float наверно.
в конце надо scanf заменить на printf.
логику непроверял,ошибки исправил:
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
#include <stdio.h>
#include <math.h>
#include <conio.h>
void main(){
    printf("введите количество прямоугольников ,не меее двух\n");
    float a,b,c,d,a1,b1,c1,d1,n,s;  
    do {
        scanf("%f",&n);
    }while (n<=1);
    printf("габариты первого прямоугольника (a<b),(c<d)\n");    
    do
        scanf("%f%f%f%f",&a,&b,&c,&d);
    while ((a>=b)&&(c>=d));
    for(int i=1;i<=n-1;i++){
        printf("введите следующий прямоугольник\n");
        scanf("%f%f%f%f",&a1,&b1,&c1,&d1);
        if ((b<=a1) || (d<=c1) || (b1<a) || (d1<c))
            printf("прямоугольники не пересекаются\n");
        else{
            if (a<a1) 
                a=a1;
            if (b>b1) 
                b=b1;
            if (c<c1) 
                c=c1;
            if (d>d1) 
                d=d1;
            s=(b-a)*(d-c);    
            printf("площадь пересечения =%f\n",s); 
        }    
    }
    getch();
    return;                         
}
Gabberr
 Аватар для Gabberr
101 / 101 / 17
Регистрация: 13.10.2009
Сообщений: 402
04.03.2010, 22:06  [ТС]     Площади прямоугольников #3
Спасибо вам!
Не могли бы ещё объяснить,что за библиотека conio.h?
а так же что означает getch(); ?
Norby
 Аватар для Norby
64 / 64 / 2
Регистрация: 12.03.2008
Сообщений: 392
04.03.2010, 22:30     Площади прямоугольников #4
Цитата Сообщение от Gabberr Посмотреть сообщение
Спасибо вам!
Не могли бы ещё объяснить,что за библиотека conio.h?
а так же что означает getch(); ?
conio.h (console input/output) библиотека для консольного ввода/вывода. getch() написанная без параметров ждет нажатия Enter. Обычно вставляется в конце программы, чтобы окно с результатами не закрылось сразу.
Yandex
Объявления
04.03.2010, 22:30     Площади прямоугольников
Ответ Создать тему
Опции темы

Текущее время: 06:45. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru