디시인사이드 갤러리

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

갤러리 본문 영역

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

용자형구함(61.41) 2012.04.01 18:53:18
조회 154 추천 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 - -
AD 따뜻한 겨울나기! 방한용품 SALE 운영자 25/11/27 - -
309010 미래에 대한 걱정, 조언을 얻고자하는 마음, 욕먹어서라도 크고픈 마음 [9] 진정한 눕(211.108) 12.04.01 221 0
용자형풀어줘 다시올렷어 ㅜ [14] 용자형구함(61.41) 12.04.01 154 0
309006 이거 풀어줄 용자형잇어... 미치겟어 제발도와줘 용자형구함(61.41) 12.04.01 50 0
309005 asp.net razor이제 막 배우기 시작했는데 질문좀할께요 razor(117.55) 12.04.01 29 0
309000 형들 무선통신 계층 개념이 잘 안 와서 그러는뎅 회색사과갤로그로 이동합니다. 12.04.01 31 0
308997 존경하옵고 사랑하는 선배님들... 질문점 올리겠습니다. [1] asdf(121.128) 12.04.01 56 0
308993 1 소환. 몰라, 썅. 나머지는 니가 정리해. 귀찮아. [9] 생물학(175.115) 12.04.01 116 0
308992 자바야 [1] 교황갤로그로 이동합니다. 12.04.01 70 0
308991 집에있는 공유기트래픽 모니터링.. 공유기에서 지원안해도 가능??(조공) [1] r(125.129) 12.04.01 289 0
308990 STDMETHOD() 매크로 아는 사람없음? [4] DontMeddle갤로그로 이동합니다. 12.04.01 73 0
308989 서버, DB쪽 공부하고싶은데 어떻게 시작해야할지 모르겠어요 [2] ㅋㅋ(218.152) 12.04.01 88 0
308988 근데 ㅋㅋ 문제는 .... [1] 1(121.150) 12.04.01 28 0
308987 열혈강의c에 보면 반복문이나 조건문에서 문장이 하나면 괄호 생략하는게 [2] 1234(114.199) 12.04.01 159 1
308986 ㅎ헤헤 성공했다 [6] 1234(114.199) 12.04.01 150 0
308985 구글은 만우절도 갑이네 (1.214) 12.04.01 113 0
308983 이게 왜 잘못된거야? [8] 1234(114.199) 12.04.01 143 0
308981 자연수n에대해 합이 n이되는 정수 리스트중 곱이 최대가되는 것 [36] 1(121.150) 12.04.01 167 0
308980 LPIK 라던가 CISSP 같은 국제공인 자격증 도움됨?? [6] ㅁㄴㅇㄹ(59.30) 12.04.01 144 0
308979 외국에살고있는 놈인데 한국가서 프로그래밍배우려고함 조언좀 [4] Aussie!(112.213) 12.04.01 140 0
308975 왜 같은걸 수행하는 기능이 api와 com으로 선택할수 있는거야? [5] ㅇㅇ(121.162) 12.04.01 66 0
308973 php 에러 왜난건지 아는분 도와주세요 굽신굽신 ㅠ [2] phpㅠㅠ(211.247) 12.04.01 60 0
308972 ㅠㅠ회사짤림 ㅠㅠ [2] ㅠㅠ(211.117) 12.04.01 146 0
308968 형들 sequence class 이란게... [4] ㄴㅁㄻㄴㄹ(175.210) 12.04.01 64 0
308967 형들..상담좀 해주세요(인간을 대하는 태도?) [2] 어쩌지(61.80) 12.04.01 87 0
308966 이런것도 프로그래밍으로 답구할수있냐? [7] 솨발(121.134) 12.04.01 129 0
308965 야 쉬펄 나 회사 때려쳣다 [5] 개심심(121.140) 12.04.01 202 0
308963 OS.js 올라와서 드가봤는데 저게 뭐죠? 웹기반 OS? [4] C언어찌랭이갤로그로 이동합니다. 12.04.01 120 0
308962 교황아 [33] 정통27갤로그로 이동합니다. 12.04.01 178 0
308959 알집으로 egg파일 암호걸고 압축했는데 이거 깨는방법있을까? [1] cyber갤로그로 이동합니다. 12.03.31 255 0
308958 아놔콘다야 이러케 설명해주면되는거임?? [26] 교황갤로그로 이동합니다. 12.03.31 143 0
308957 횽들 짧은 코드인데 계속 구문 오류가 생겨서 컴파일이 안됨 도와줭 ㅜㅜ [5] ㅇㅇㄴㅇ(116.33) 12.03.31 112 0
308953 오빠 나 저거 사줘! 정수정•‿•갤로그로 이동합니다. 12.03.31 128 0
308951 나도 점점 컴덕후가 되가는건가... [1] U10갤로그로 이동합니다. 12.03.31 68 0
308950 직장인 학원 주말반 보통 얼마정도 하나요? ㅇㅇ(210.113) 12.03.31 36 0
308949 HRESULT 정의를 보면 DontMeddle갤로그로 이동합니다. 12.03.31 44 0
308948 도와주세요.. 리눅스 segmentation fault 오류 [4] eee(165.132) 12.03.31 162 0
308947 형들은 SK C&C 랑 NHN 이 합격됬다면 어디갈래 [3] 사랑해형들(121.140) 12.03.31 280 0
308946 문득 미래 진로에 대해서 생각해봤는데 [1] 12(59.12) 12.03.31 58 0
308945 음악파일 입출력 어떻게하는건지 아는사람 있어? [1] 개뇬갤로그로 이동합니다. 12.03.31 77 0
308944 헐.. OS.js 신기하다 Rei@디씨갤로그로 이동합니다. 12.03.31 68 0
308942 아놔콘다야 이 말임 [8] 교황갤로그로 이동합니다. 12.03.31 134 0
308940 HRESULT bool ?? 이거 누구아시는분 [6] DontMeddle갤로그로 이동합니다. 12.03.31 74 0
308937 이것도 일종의 직업병인가.... [1] 아놔콘다갤로그로 이동합니다. 12.03.31 98 0
308936 컴공 교수들 포인터에 트라우마가 있더라 [9] ㅇㅁ(114.199) 12.03.31 244 0
308935 무가 잘못됏는지 찾아줘요 [1] 자바쟁이(110.46) 12.03.31 51 0
308934 구인사이트 이력서올리고 연락오면 어떻게해야되? [1] ㅁㅁㅁㅁ(121.130) 12.03.31 92 0
308932 요즘 node.js가 뜬다고 하던데 [7] Rei@디씨갤로그로 이동합니다. 12.03.31 128 0
308931 성님들 이거 힌트좀 줄수 있겠는가?? [2] 렙터갤로그로 이동합니다. 12.03.31 54 0
308930 약간 병진같은 질문이지만 네트워크관리사 2급 필기 준비하는데.. 내공냠냠(112.161) 12.03.31 43 0
308929 리눅스 명령어중에 [4] 데헤ㅐㅅ(220.86) 12.03.31 73 0
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

디시미디어

디시이슈

1/2