어차피 오늘 시험 본 내용인데, 쓰다가 실패함..
하여간 기억나는데로, 코딩 해봤는데, 왜 최대값, 최소값 쪽 출력이 안될까?
난수로 만들어서 (10 ~ 40) 10개 있는 구조체에 넣은다음에
(x1-x2) *(y1-y2) 식으로 넓이를 구한다음에 10개 중 최대값, 최소값을 찾아서 인쇄
대충 이런내용임.
#include <stdio.h>
#include <time.h>
#pragma warning(disable:4996)
struct Point{
int x;
int y;
};
struct Rectangle {
struct Point Left;
struct Point Right;
int area;
};
int main()
{
struct Rectangle r[10];
struct Rectangle *p;
struct Rectangle *Result;
int i;
int j, k;
int max, min;
max = min = 0;
j = k = 0;
p = &r;
Result = &r;
srand((unsigned)time(NULL));
for(i = 0; i < 10; i++)
{
(p+i)->Left.x = rand() % 30 + 10;
(p+i)->Left.y = rand() % 30 + 10;
(p+i)->Right.x = rand() % 30 + 10;
(p+i)->Right.y = rand() % 30 + 10;
}
for(i = 0; i < 10; i++){
printf(\"%5d%5d%5d%5d\\n\", (p+i)->Left.x, (p+i)->Left.y, (p+i)->Right.x, (p+i)->Right.y);
Result->area = ((p+i)->Left.x - (p+i)->Right.x) * ((p+i)->Left.y - (p+i)->Right.y);
if(max < Result->area){
max = Result->area;
j++;
if(j > 8){
printf(\"r[%d]의 {(%5d,%5d),(%5d,%5d)}는 면적 %5d인 최대값\\n\", i, (p+i)->Left.x, (p+i)->Left.y, (p+i)->Right.x, (p+i)->Right.y ,max);
}
}
if(min > Result->area){
min = Result->area;
k++;
if(k > 8){
printf(\"r[%d]의 {(%5d,%5d),(%5d,%5d)}는 면적 %5d인 최대값\\n\", i, (p+i)->Left.x, (p+i)->Left.y, (p+i)->Right.x, (p+i)->Right.y ,max);
}
}
}
return 0;
}
네?
ㄴㄴ 내 말투가 문제임? 아님 설명이 부족함? 아니면 원래 이 갤러리는 물어보면 안되는 갤러리임?
코드가 길면 잘 안봄
좃밥질문에 소스길다 이 두충족을 만족하면 잘 대답안해줌