디시인사이드 갤러리

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

갤러리 본문 영역

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

용자형구함(61.41) 2012.04.01 18:53:18
조회 151 추천 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/17 - -
AD 대학생 필수템! What's in my Bag 운영자 25/11/21 - -
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 39 0
309123 프로그래밍 아닌 다른 것으로 먹고 살만한거 없을까 ? ㅇㅇ ? [2] ☎v2.2™갤로그로 이동합니다. 12.04.02 95 0
309121 이짤 사실인가요? [4] 개짐(125.131) 12.04.02 164 0
309120 솔직히 윗분들은 영맨을 챙겨주잖아 ㄷㄷ(112.221) 12.04.02 48 0
309119 이거 어쩜 ...ㅜㅜ [5] 소보루빵갤로그로 이동합니다. 12.04.02 77 0
309118 영어권 나라가 확실히 대우는 좋지... [4] 아놔콘다갤로그로 이동합니다. 12.04.02 122 0
309115 프갤형들 이력서썻을때 희망연봉 얼마적엇음? [1] ㅁㅁㅁㅁ(223.195) 12.04.02 163 0
309114 연봉 이야기들 하길래 내 연봉을 계산해봤더니 [3] 초잉여(106.103) 12.04.02 201 0
309112 횽들 미적분 프로그램도 만들수있어?? [3] 현기증난다(58.74) 12.04.02 136 0
309111 si가 어떻길래 그렇죠??? [1] 김si(182.211) 12.04.02 106 0
309110 개발자 의 첫월급은./... [7] 빌어먹을야옹갤로그로 이동합니다. 12.04.02 214 0
309109 왕기초]]요기에 왜 소문자를입력하시오가 2개씩 나와?? [6] 칰정갤로그로 이동합니다. 12.04.02 66 0
309107 요번 상반기는 SI 업체만 열림 [2] [성대아싸]갤로그로 이동합니다. 12.04.02 160 0
309106 ㅋㅋ 콩찌갤로그로 이동합니다. 12.04.02 31 0
309104 근데 솔직히 화가나 미칠 지경이다.. [3] ㅇㅇ(58.102) 12.04.02 81 0
309103 글쓰기는 잘되나?? [2] 이문동쮸쮸바갤로그로 이동합니다. 12.04.02 47 0
309102 프로그래밍으로 2년넘게 밥먹고 있는데.. [2] ㅇㅇ(58.102) 12.04.02 135 0
309101 요새좀 무기력한듯 [1] 금고래갤로그로 이동합니다. 12.04.02 30 0
309100 20대 중반 중학교 수학도 재대로 모르는 놈 [4] 초잉여(106.103) 12.04.02 170 0
309097 한게임에서 만든 게임오븐 아는횽 있나여? [1] 332(222.121) 12.04.02 34 0
309094 static 질문 [16] ㅇㅇ(58.102) 12.04.02 126 0
309092 전자게이들 헬프 미쳤dot갤로그로 이동합니다. 12.04.02 51 0
309091 경영다니는 놈이 프갤에 와서 싸게 부려먹을라고 캤는데 넘어가면 안되져 [4] [성대아싸]갤로그로 이동합니다. 12.04.02 136 0
309090 구인사이트에 이력서올리고 먼저연락온곳은 대부분 비교적 안좋아?? [10] ㅁㅁㅁㅁ(110.70) 12.04.02 171 0
309088 액션 스크립트 좀 하시는 분 잡귀민갤로그로 이동합니다. 12.04.02 43 0
309087 아랫글을 보니.. [1] 빌어먹을야옹갤로그로 이동합니다. 12.04.02 36 0
309085 타이머를 만들려고 하는데요. [3] 인생(222.102) 12.04.02 69 0
309084 c++로 로또 프로그램을 만들려고 하는데... [3] 초보(117.123) 12.04.02 73 0
309083 주임이 기분이 안좋은갑다;;;;; [1] Html갤로그로 이동합니다. 12.04.02 71 0
309082 형들 왕초보인데 질문점.. 개초보(61.106) 12.04.02 39 0
309081 전번에 커뮤니티 만든다고 한 놈인데 [4] 찌부된초코빵갤로그로 이동합니다. 12.04.02 79 0
309077 형들 CRect의 개념좀 이해시켜줘 [3] 세달뒤면몸짱갤로그로 이동합니다. 12.04.02 85 0
309074 if문 질문있습니다. [2] 초잉여(106.103) 12.04.02 63 0
309071 MFC관련 뭐하나만 알려줘; [7] 모자란동생(61.109) 12.04.02 79 0
309070 WINAPI로 ReadWriteLock 만드는거 질문점... SODMaster갤로그로 이동합니다. 12.04.02 61 0
309069 네이버 백신 스마트 디펜서인가 짱나네.. ㅇㅇ(58.102) 12.04.02 72 0
309067 오랜만입니다 [1] +어게인갤로그로 이동합니다. 12.04.02 29 0
309066 군대가기전에 뭐할까.. [3] ㅁㄴㅇㅁㄴㅇ(182.214) 12.04.02 81 0
309065 하찮은 숙제말고 [2] 페고떼찌갤로그로 이동합니다. 12.04.02 110 0
309064 유니코드를 구분하기위해 앞에 1을 붙인다는게뭔말이에요? [1] ●알콩이갤로그로 이동합니다. 12.04.02 72 0
309063 이거 책이 설명이 잘못된거에요?(java) [3] ●알콩이갤로그로 이동합니다. 12.04.02 73 0
309062 재귀함수로 팩토리얼값 구하는 프로그램.. [6] ㅇㅁ(114.199) 12.04.02 127 0
309061 자바 공부하는데 실수형 상수 이해안가는것 [2] ●알콩이갤로그로 이동합니다. 12.04.02 147 0
309060 자바의 syncronized wait notifyAll 처럼... SODMaster갤로그로 이동합니다. 12.04.02 93 0
309059 원래 소스는 즉흥적으로 짜는거에요? [18] ㅇㅁ(114.199) 12.04.02 215 0
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

디시미디어

디시이슈

1/2