디시인사이드 갤러리

갤러리 이슈박스, 최근방문 갤러리

갤러리 본문 영역

용자형풀어줘 다시올렷어 ㅜ

용자형구함(61.41) 2012.04.01 18:53:18
조회 152 추천 0 댓글 14

<PRE>#include<stdio.h>
#include<stdlib.h>
#include<math.h>

#define MAX(x,y)         ((x)>(y)?(x):(y))
#define ABS(x)                ((x)>0? (x) : -(x))

#define MAX_DEGREE        100

// 다항식을 표현하는 구조체 타입 polynomial
typedef struct _poly {
        int degree;                // 차수
        int coef[MAX_DEGREE+1];        // 계수를 저장하는 배열
} polynomial;

/////////////////////////////////////////////////////////
// polynomial 타입에 대한 연산

// 다항식 기본연산
polynomial poly_zero();
polynomial poly_minus(polynomial P);
polynomial poly_add(polynomial P1, polynomial P2);
polynomial poly_subtract(polynomial P1, polynomial P2);
polynomial poly_multiply(polynomial P1, polynomial P2);

// 다항식의 미지수에 수치 대입
double poly_eval(polynomial P, double x);

// 다항식을 화면에 출력
void print_poly(polynomial P, char symbol);

//////////////////////////////////////////////////////////

// poly_zero
//  parameter:
//  return value:
//       다항식 p(x)=0 을 반환, 0인 다항식의 차수는 -1로 정한다.
polynomial poly_zero()
{
        polynomial r = {-1, {0}};
        return r;
}

// poly_minus
//  다항식 P를 인자로 받아 -P를 리턴한다. (계수의 부호를 바꿈)
//  parameter: polynomial P
//  return value: -P                
polynomial poly_minus(polynomial P)
{

        int i=0;
        polynomial result = poly_zero();

        // 여기에 적당한 코드를 기입하세요.
        
        return result;
}

// poly_add
//  두 다항식의 합을 계산하여 반환
//  parameter: polynomial P1, polynomial P2
//  return value: P1+P2
polynomial poly_add(polynomial P1, polynomial P2)
{
        int i=0;
        polynomial result = poly_zero();

        // 여기에 적당한 코드를 기입하세요.

        return result;
}

// poly_subtract
//  두 다항식의 차를 계산하여 리턴함
//  parameter: polynomial P1, polynomial P2
//  return value: P1-P2
polynomial poly_subtract(polynomial P1, polynomial P2)
{
        polynomial result = poly_zero();
        // 여기에 적당한 코드를 기입하세요.
        return result;
}

// poly_multiply
//  두 다항식의 곱을 계산하여 리턴함
//  parameter: polynomial P1, polynomial P2
//  return value: P1*P2
polynomial poly_multiply(polynomial P1, polynomial P2)
{
        polynomial result = poly_zero();
        int i, j;

        // 여기에 적당한 코드를 기입하세요.

        return result;
}


// poly_eval
//  다항식의 미지수에 실수 값을 대입한 결과를 계산하여 반환
//  parameter: polynomial P, double x
//  return value: P(x)를 계산한 값
double poly_eval(polynomial P, double x)
{
        int i;
        double result = 0.0;

        // 여기에 적당한 코드를 기입하세요.

        return result;
}

// print_poly
//  다항식 P를 적당한 형식으로 화면에 출력
//  P의 미지수를 표시하기 위해 symbol을 사용함
//   parameter: polynomial P, char symbol
//   return value: void
//   usage: 예를 들어 미지수를 X로 출력하고 싶으면,
//          print_poly(P, 'X'); 와 같은 꼴로 호출
//  
void print_poly(polynomial P, char symbol)
{
        int i = P.degree;

        if(P.degree<=0)
        {        // 차수가 0 혹은 -1이면, 상수항만 출력한 후 리턴
                printf("%d\n", P.coef[0]);
                return;
        }

        /// 최고차항을 먼저 출력
        // 계수가 -1 혹은 1이면 부호만 출력한다.
        if(P.coef[i] == -1)
                printf("-%c^%d ", symbol, i);
        else if(P.coef[i] == 1)
                printf("%c^%d ", symbol, i);
        else
                printf("%d%c^%d ", P.coef[i], symbol, i);

        // 나머지 항들에 대해...
        for(--i; i>=0; i--)
        {
                // 계수가 0이면 출력하지 않음
                if(P.coef[i] == 0)
                        continue;

                // 계수의 부호를 먼저 출력
                if(P.coef[i] < 0)
                        printf("- ");
                else if(P.coef[i] > 0)
                        printf("+ ");
        
                // 계수의 절대값을 출력
                // 단, 계수의 절대값이 1이고 상수항이 아니면 출력할필요 없다.
                if(ABS(P.coef[i]) != 1 || i == 0)
                        printf("%d", ABS(P.coef[i]));

                // 그 뒤에 "symbol^차수"의 형태를 출력
                // 단, 1차항이면(즉, i==1이면) "^차수"는 생략하며,
                // 상수항이면(즉, i==0이면) 출력하지 않음
                if(i>1)        
                        printf("%c^%d ", symbol, i);
                else if(i==1)
                        printf("%c ", symbol);
                        
        }

        printf("\n");
}

//////////////////////////////////////////////////////////////////
// main
int main()
{
        // polynomial 타입 연산의 연습

        // polynomial 타입 변수 선언
        // p1(x) = 10x^5 + 3x + 6
        // p2(x) = -10x^5 + x^2 - 3x + 4
        // p3(x) = x^8 + 4x^7 + 2x^6 - 10x^5 - 4x^4 - x^3 + 3x^2 + 5x + 1
        // p4(x) = x^2 - 2
        polynomial p1={5, {6,3,0,0,0,10}};
        polynomial p2={5, {4,-3,1,0,0,-10}};
        polynomial p3={8, {1,5,3,-1,-4,-10,2, 4, 1}};
        polynomial p4={2, {-2,0,1}};

        polynomial r1=poly_zero(), r2=poly_zero(), r3=poly_zero(), r4=poly_zero();

        // 주어진 다항식을 화면에 출력해본다.
        printf("p1: ");        print_poly(p1, 'X');
        printf("p2: "); print_poly(p2, 'X');
        printf("p3: "); print_poly(p3, 'X');
        printf("p4: "); print_poly(p4, 'X');
        printf("r1..r4: "); print_poly(r1, 'X');
        printf("\n");

        //////////////////////////////////////////////////////////
        // STEP 1. 다항식의 덧셈
        //  아래의 작업을 수행하는 코드를 쓰시오.
        //  (1) p1+p2을 r1에 대입
        //  (2) p1+p3를 r2에 대입
        //  (3) 다항식 r1을 화면에 출력
        //  (4) 다항식 r2를 화면에 출력

        printf("*****STEP 1.\n");
        // (1)
        // 여기에 적당한 코드를 기입하세요.
        // (2)
        // 여기에 적당한 코드를 기입하세요.
        // (3)
        // 여기에 적당한 코드를 기입하세요.
        // (4)
        // 여기에 적당한 코드를 기입하세요.
        printf("\n");

/*
        //////////////////////////////////////////////////////////
        // STEP 2. 다항식의 뺄셈
        //  아래의 작업을 수행하는 코드를 쓰시오.
        //  (1) -p1을 r1에 대입
        //  (2) r1-p2를 r2에 대입
        //  (3) 다항식 r1을 화면에 출력
        //  (4) 다항식 r2를 화면에 출력
        //  (5) p3 - (r2 + p1) 을 화면에 출력

        printf("*****STEP 2.\n");
        // (1)
        // 여기에 적당한 코드를 기입하세요.
        // (2)
        // 여기에 적당한 코드를 기입하세요.
        // (3)
        // 여기에 적당한 코드를 기입하세요.
        // (4)
        // 여기에 적당한 코드를 기입하세요.
        // (5)
        // 여기에 적당한 코드를 기입하세요.
        printf("\n");
*/

/*
        //////////////////////////////////////////////////////////
        // STEP 3. poly_eval 함수 사용
        //  아래의 작업을 수행하는 코드를 쓰시오.
        //  (1) p3의 미지수에 2를 대입했을 때의 값을 화면에 출력
        //  (2) p4의 미지수에 1.4142136을 대입했을 때의 값을 화면에 출력

        printf("*****STEP 3.\n");
        // (1)
        // 여기에 적당한 코드를 기입하세요.
        // (2)
        // 여기에 적당한 코드를 기입하세요.
        printf("\n");
*/

/*
        //////////////////////////////////////////////////////////
        // STEP 4. 다항식의 곱셈
        //  아래의 작업을 수행하는 코드를 쓰시오.
        //  (1) p3와 p4의 곱을 r1에 대입
        //  (2) r1를 화면에 출력
        //  (3) p4의 제곱을 화면에 출력
        //  (4) p3의 4승을 화면에 출력
        //  (5) r1*p1 - r1*p2 + p4 를 화면에 출력

        printf("*****STEP 4.\n");
        // (1)
        // 여기에 적당한 코드를 기입하세요.
        // (2)
        // 여기에 적당한 코드를 기입하세요.
        // (3)
        // 여기에 적당한 코드를 기입하세요.
        // (4)
        // 여기에 적당한 코드를 기입하세요.
        // (5)
        // 여기에 적당한 코드를 기입하세요.
        printf("\n");
*/
        return 0;
}        </PRE>

추천 비추천

0

고정닉 0

0

댓글 영역

전체 댓글 0
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 뛰어난 운동 신경으로 남자와 싸워도 이길 것 같은 여자 스타는? 운영자 25/11/24 - -
이슈 [디시人터뷰] 충무로가 주목하는 신예, '세계의 주인' 서수빈 운영자 25/11/24 - -
AD 대학생 필수템! What's in my Bag 운영자 25/11/21 - -
309177 안녕하세요, 프갤님들.. 복학생 질문 하나 들고 왔습니다. [1] (168.115) 12.04.03 57 0
309176 자라 [1] 정수정•‿•갤로그로 이동합니다. 12.04.03 41 0
309175 자료구조 리스트 앞단원까지 충분히 이해하려면 C 어디까지 공부해야됨?? [2] ㅂㅂ(114.199) 12.04.03 96 0
309174 ㅡㅡ씨발 개 어이없는 시간낭비였다.. [1] 니 코 가 뭐갤로그로 이동합니다. 12.04.03 65 0
309173 형들 this랑 super차이가 이런거임? [2] 자바초보(111.118) 12.04.03 107 0
309172 어 시발 존나 짜증나는건 [5] 니 코 가 뭐갤로그로 이동합니다. 12.04.03 58 0
309171 C 포인터질문점 [2] C공부(58.143) 12.04.03 68 0
309170 구글에서 아뒤치면 내 트윗 검색 되게 . .하는법좀.. 1(220.117) 12.04.03 89 0
309169 레노미나야 [4] 니 코 가 뭐갤로그로 이동합니다. 12.04.03 59 0
309168 아이폰 앱스토어 심사중 리젝(거부) 사유들 ㅋㅋ [2] zz(218.37) 12.04.03 189 0
309167 형들 저 고등학생인데 컴퓨터보안 어디서배움 [12] cyber갤로그로 이동합니다. 12.04.02 195 0
309166 야 copyFile 구현하는데말야 (스샷有) [9] 니 코 가 뭐갤로그로 이동합니다. 12.04.02 120 0
309164 학원에서 3~6개월 배우면 뭐할수 있노? [7] ㅇㅇ(119.149) 12.04.02 199 0
309163 mfc onpaint함수에서 이미지 겹치기 [2] 키류츠카사갤로그로 이동합니다. 12.04.02 2463 0
309162 보안전문가도 학원에서 양성하네 .. 갤로그로 이동합니다. 12.04.02 89 0
309161 왜이렇게 프로그래밍 학원이 많은거야? 정부에서도 부추기는듯 [6] d(39.115) 12.04.02 180 0
309160 sync와 fsync의차이점좀 [3] 중간점검갤로그로 이동합니다. 12.04.02 133 0
309158 철수 아저씨가 대선에 나올까? [1] 이모군(175.114) 12.04.02 47 0
309157 다음 대용량 메일 보내기 할 때, 100프로라고 나오고 안 보내지는 증상 분당살람갤로그로 이동합니다. 12.04.02 229 0
309156 배열에서 '참조'라는게 뭐냥? [7] ㅇㅁ(114.199) 12.04.02 93 0
309155 야 보통 텍스트 파일 한줄 읽는 버퍼링 크기 얼마가 좋을까? [1] 니 코 가 뭐갤로그로 이동합니다. 12.04.02 32 0
309154 나 딱 일주일만 쉬고 일구해야지 쿠쿠 개심심(121.140) 12.04.02 44 0
309153 앱인벤터 하시거나 하실줄아시는분 계세요..? (124.199) 12.04.02 72 0
309152 미분 코딩 함수좀 알려줘염 [1] 미분점(58.74) 12.04.02 407 0
309151 DC게시판에 카운터 어떻게 올리는거지??? [8] 개심심(121.140) 12.04.02 84 0
309150 쿄스케 아직도 직장 못구하고 빌빌대냐? [4] 개심심(121.140) 12.04.02 93 0
309147 떡 줄 사람은 생각도 않는데 김칫국부터 마신다고 DeCoY갤로그로 이동합니다. 12.04.02 45 0
309146 한달에 야근 얼마나 함? [1] 전간디갤로그로 이동합니다. 12.04.02 107 0
309144 123.45 (6진수)를 이진수로 변환 [1] Kkobuk갤로그로 이동합니다. 12.04.02 29 0
309143 리눅스에서 파일열때 r 이랑 rb랑 차이음슴? [3] 중간점검갤로그로 이동합니다. 12.04.02 45 0
309142 프로그래머 좋아하는 여성분들도 많을꺼야 [2] Html갤로그로 이동합니다. 12.04.02 160 0
309141 fcntl은 리눅스 환경에서만 써먹히나? [2] 니 코 가 뭐갤로그로 이동합니다. 12.04.02 42 0
309140 니들이 프로그래머 인생을 너무 어둡게 보는것 같아 [1] ㅇㅇ(58.102) 12.04.02 150 0
309139 자바야 봐라 [1] 교황갤로그로 이동합니다. 12.04.02 50 0
309138 근데 개발자평균연봉보면 집언제사고 결혼 언제할까싶다 ㅠ ㅁㅁㅁㅁ(223.195) 12.04.02 106 0
309137 open 같은 리눅스 함수 말야 [9] 니 코 가 뭐갤로그로 이동합니다. 12.04.02 80 0
309136 근데 날이 갈수록 프로그래밍 스킬이 퇴보하는것 같아 [3] ㅇㅇ(58.102) 12.04.02 90 0
309135 더킹투 머시기 라는 이승기 나오는 드라마에서 [1] iljeomobolt갤로그로 이동합니다. 12.04.02 70 0
309133 다시 질문할께 행렬에관한거 ㅂㅁㅋ(210.93) 12.04.02 51 0
309132 하아.. 역시 공부든 플밍이든 배를 채워야 하나봄...... [1] (112.159) 12.04.02 48 0
309131 두컴터에서 퀵소트 비교횟수가 다른문제.. [3] (118.176) 12.04.02 54 0
309130 이 기능 어떻게 구현되는지... [5] ㄱㅅ(175.205) 12.04.02 118 0
309129 Some body Help me 컴온 [4] 진지하닸(58.74) 12.04.02 52 0
309127 제가 행렬을 제대로 이해하고 있는지 확인부탁합니다. [1] ㅂㅁㅋ(210.93) 12.04.02 53 0
309126 미즈넷에 35살 프로그래머가 올린글본사람? [4] ㅇㅇ(211.208) 12.04.02 288 0
309125 징징글 [1] dlddu(211.246) 12.04.02 38 0
309124 횽들아 나 궁금한게있어 한번 봐줄랭? [1] 진지하닸(58.74) 12.04.02 41 0
309123 프로그래밍 아닌 다른 것으로 먹고 살만한거 없을까 ? ㅇㅇ ? [2] ☎v2.2™갤로그로 이동합니다. 12.04.02 95 0
309121 이짤 사실인가요? [4] 개짐(125.131) 12.04.02 165 0
309120 솔직히 윗분들은 영맨을 챙겨주잖아 ㄷㄷ(112.221) 12.04.02 49 0
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

디시미디어

디시이슈

1/2