아직 프로그래밍 초보로서 공부시작하는 시점에서 자료구조같은 책공부하다보면 

예문같은거 있지않습니까? 예를들면 아주초반인 다항식의 덧셈 프로그램 이라는 이런거



Q. 구조체를 이용하여 다항식을 덧셈하는 프로그램을 작성하시오




R.

#include <stdio.h>

#define MAX(a,b) (((a)>(b))?(a):(b))

#define ARR 10


typedef struct {

int degree;

float table[ARR];

} polynomial;


polynomial add(polynomial a, polynomial b)

{

polynomial c;

int a_pos=0, b_pos=0, c_pos=0;

int a_degree = a.degree;

int b_degree = b.degree;

c.degree = MAX(a.degree, b.degree);


while(a_pos<=a.degree && b_pos<=b.degree)

{

if(a_degree>b_degree) //a항>b항

{

c.table[c_pos++] = a.table[a_pos++]; //제일 높은 항을 그대로 c에 옴긴다

a_degree--; //table[0]에 저장되는 것은 제일 높은 차수의 항이므로

}


else if(a_degree==b_degree) //a항==b항

{

c.table[c_pos++] = a.table[a_pos++] +  b.table[b_pos++]; //같은 항의 차수를 더한 뒤 c로 옮긴다.

a_degree--;

b_degree--;

}


else //a항==b항

{

c.table[c_pos++] = b.table[b_pos++]; //같은 항의 차수를 더한 뒤 c로 옮긴다.

b_degree--;

}

}

return c;

}


int main(void)

{

int i;

polynomial a = {5, {3,6,0,0,0,10}};

polynomial b = {4, {7,0,5,0,1}};


polynomial c;

c= add(a,b);

}

이렇게 다항식의 덧셈 프로그램을 작성하시오 라고 하면 머리속에서 저렇게 위에있는 예문을 모두 외우고있어서 위처럼 프로그램을 짤수있어야하는건가요?도저히 어떻게 저렇게 생각해서 짜내는지 지금으로서는 이해가 잘안되는데...ㅜ

그리고 실제로 아무것도없는상태에서 프로그램을 저렇게 짤때 전체적인 메인함수를 먼저 짜고 안의 함수들을 짜는것인지 아니면 책의순서대로 함수들을짜고 나중에 메인함수를 만들어서 짜논걸 넣는지 프로그램짜는 구조가 어떤지도 모르겟어요