*병*
Bronze개인
팔로워0 팔로우
소개
등록된 소개글이 없습니다.
전문분야 등록된 전문분야가 없습니다.
판매자 정보
학교정보
입력된 정보가 없습니다.
직장정보
입력된 정보가 없습니다.
자격증
  • 입력된 정보가 없습니다.
판매지수
전체자료 12
검색어 입력폼
  • [C 프로그램] 다항식 덧셈
    #include#include#include#define IS_FULL(ptr) (!(ptr))#define Max 100#define COMPARE(a,b) ((a>b) ? 1 : (alink)sum = sum + (ptr->coef * pow(x, ptr->expon));//다항식 값 계산printf("%c 다항식의 값은 %d 입니다.n", ch, sum);}poly_pointer padd(poly_pointer a,poly_pointer b) // 두 다항식을 더해주는 함수{poly_pointer front, rear, temp;int sum;rear = (poly_pointer)malloc(sizeof(poly_node));if(IS_FULL(rear)){printf("THE MEMORY IS FULLn");exit(1);}front = rear;while(a && b)switch(COMPARE(a->expon ,b->expon)){case -1:attach(b->coef,b->expon,&rear); b=b->link;break;case 0:sum = a->coef + b->coef;if(sum) attach(sum,a->expon,&rear);a = a->link; b = b->link;break;case 1:attach(a->coef,a->expon,&rear);a = a->link;}for( ; a ; a = a->link) attach(a->coef, a->expon, &rear);for( ; b ; b = b->link) attach(-(b->coef), b->expon, &rear);rear->link = NULL;temp = front; front = front->link; free(temp);return front;}void attach(int coefficient,int exponent,poly_pointer *ptr) //노드의 생성 및 값을 저장{poly_pointer temp;temp = (poly_pointer)malloc(sizeof(poly_node));if(IS_FULL(temp)){printf("THE MEMORY IS FULLn");exit(1);}temp->coef = coefficient;temp->expon = exponent;temp->link = NULL;(*ptr)->link = temp;*ptr = temp;}poly_pointer check(char *str)//지수와 계수를 체크해서 attach함수에 넘겨줌{//지수와 계수는 한자리임을 가정하에 체크poly_pointer rear, temp, front;rear = (poly_pointer)malloc(sizeof(poly_node));front = rear;int coef, expon, i;for(i=0 ; ; i++){//계수 체크를 위한 부분if(str[i] == '-') i++;//처음에 '-' 체크if(str[i] == 'x') coef = 1;//앞에 계수가 없을 때else if(str[i+1] == 'x') {//계수가 있을 경우if(str[i-1] == '-' ) {//계수가 '-'일때coef = -1 * (str[i] - '0');i++;}else {coef = str[i] - '0';i++;}}else if(str[i+1] == ''){//끝에 계수값만 있을경우 체크if(str[i-1] == '-') coef = -1 * (str[i]-'0'); //계수가 '-'일때else coef = str[i] - '0';expon = 0;attach(coef, expon, &rear);break;}for(i+=1 ; ; i++){ //지수 체크를 위한 부분if(str[i] == '(') {expon = str[++i] - '0';i++;// ')'다음으로넘겨줌break;} //지수가 있을경우else if(str[i] == '+' || str[i] == '-') {expon = 1;i--;break;} //지수가 없을경우else if(str[i] == '') {expon = 1;break;} //더이상 수행할 식이 없을때}attach(coef, expon, &rear);//지수, 계수의 값을 넘겨줌if(str[i+1] == '') break; //식이 끝나는가를 체크i++;//부호 다음을 가리키게 하기 위해}rear->link = NULL; //필요없는 초기 노드 삭제temp = front;front = front->link;free(temp);return front;}void print_list(poly_pointer ptr)//두 다항식의 덧셈값을 프린트해주는 함수{int i = 0;//최종합이 0인지를 체크하기위해printf("두 다항식의 덧셈 값 = ");for(; ptr; ptr = ptr->link){if(ptr->coef < 0){//계수가 음수일때if(ptr->expon == 0) printf("%d", ptr->coef);//지수가 0일때 계수값만 출력else if(ptr->coef == -1)//계수가 -1일때 지수값에 따라 출력if(ptr->expon == 1) printf("-x");else printf("-x(%d)", ptr->expon);else if(ptr->expon > 1) printf("%dx(%d)", ptr->coef, ptr->expon);//지수값에 따라 계수 출력else printf("%dx", ptr->coef);i++;}else if(ptr->coef == 0) break;//계수의 합이 0일 때 출력안함else {if(i == 0) {// i가 0이면 처음에 오는식이기 때문에 기호 출력안함if(ptr->coef == 1){//계수가 1일때if(ptr->expon == 1) printf("x");//지수가 1일때else if(ptr->expon == 0) printf("%d", ptr->coef);//지수가 0일때else printf("x(%d)", ptr->expon);}else if(ptr->coef > 1){//계수가 1보다 클때if(ptr->expon == 1) printf("%dx", ptr->coef);else if(ptr->expon == 0) printf("%d", ptr->coef);else printf("%dx(%d)", ptr->coef, ptr->expon);}i++;}else if(ptr->coef == 1)//처음에 오는 식이 아니므로 부호와 함께 출력if(ptr->expon == 1) printf("+x");else if(ptr->expon == 0) printf("+%d", ptr->coef);else printf("+x(%d)", ptr->expon);elseif(ptr->expon == 1) printf("+%dx", ptr->coef);else if(ptr->expon == 0) printf("+%d", ptr->coef);else printf("+%dx(%d)", ptr->coef, ptr->expon);}}if(i == 0) printf("0");//i가 0일 경우 출력을 한번두 안했으므로 두 다항식의 합은 0이다printf("n");}
    공학/기술| 2003.09.30| 4페이지| 1,000원| 조회(589)
    미리보기
  • [C 프로그램] transpose와 fast transpose비교
    Transpose Source#include#include#include#define Max 2#define Swap(x,y) {int temp; temp=x; x=y; y=temp;}typedef struct{int row;int col;int value;}term;term a[2*Max+1];term b[2*Max+1];void transpose(term a[ ],term b[ ]);void sort(term a[ ]);void main(){clock_t start,finish;//시간을 재는 변수 선언start=clock();//시간체크 시작double duration;int i,j;a[0].col=Max;//초기값 설정a[0].row=Max;a[0].value=2*Max;srand((unsigned)time(NULL));//항상 다른 값이 나오게 하기위해 사용for(i=1;i
    공학/기술| 2003.08.25| 5페이지| 1,000원| 조회(681)
    미리보기
  • [C 프로그램] 주석 갯수 세기
    #include#include#includevoid print(int, char, char);void main(){FILE *fp;int scount = 0, mcount = 0, lcount = 0, comment = 0, position = 0;char ch;char str[100];if((fp = fopen("d:\9741216\hashing.cpp","r")) == NULL){printf("I can not open %sn","d:\9741216\hashing.cpp");exit(1);}while(!feof(fp)){ //파일의 끝이 아닐때까지 루프를 돌림ch = fgetc(fp); //하나의 문자를 받음if(ch == '/'){ //'/'인지를 확인if((ch = fgetc(fp)) == '*' && comment == 0){//'*'라면 주석이므로 그 다음 문자부터는 주석이 종료될때까지 읽어나감//comment == 0일 경우는 주석 에러로 검사시 /*안에 잘못된 /*이 또 있을수 있기때문에comment++; //주석의 쌍이 맞는지를 조사하기 위해while(1){if((ch = fgetc(fp)) == '*'){if((ch = fgetc(fp)) == '/'){//주석의 끝이 있으면 주석 카운트를 빼주고 탈출comment--;position = 0; //옳은 주석이므로 카운트 리셋break;}}else if(ch == EOF){ //주석 뒷부분을 찾지 못하고 프로그램의 끝인경우fseek(fp, position, SEEK_END);//주석 에러일때 주석에러가 아닌경우로 가정하구 그 위치로 돌아가 다시 체크break;}position--; //주석의 시작 다음으로 포인터를 옮기기 위해 카운트}}else if(ch == '/') //주석의 내용에 괄호가 있을수 있기때문에fgets(str, 100, fp);}else if(ch == '"'){//따옴표 안에 괄호는 상관이 없으므로 다음 따옴표를 만날때까지 다음 문자로 옮겨감while(1){if((ch = fgetc(fp)) == '"') break;else if(ch == 92) //따옴표 안에 "의 형식의 따옴표가 존재가능하므로 체크ch = fgetc(fp); // 을 만나고 "로 닫는 형식은 안되므로 한칸을 이동시켜 다음부터 체크}}else if(ch == '(') scount++; //'('이면 카운트 증가else if(ch == ')') scount--; //')'이면 카운트 감소else if(ch == '{') mcount++; //'{'이면 카운트 증가else if(ch == '}') mcount--; //'}'이면 카운트 감소else if(ch == '[') lcount++; //'['이면 카운트 증가else if(ch == ']') lcount--; //']'이면 카운트 감소}printf("%s 파일에 대한 쌍으로 된 기호 검사 결과 입니다.n", "hashing.cpp");if(comment > 0) printf("주석 에러입니다. 잘못된 /*을 제외한다면 결과는 다음과 같습니다.n");else printf("주석의 쌍이 맞습니다.n");print(scount, '(', ')');
    공학/기술| 2003.08.25| 2페이지| 1,000원| 조회(379)
    미리보기
  • [C 프로그램] Binary Search Tree 구현
    #include #include #include #include {자료구조 0071261(야)_조수영-------------------------------------------------------------------------------------#define IS_FULL(ptr) (!(ptr))typedef struct node *tree_pointer;typedef struct node {int data;tree_pointer left_child, right_child;}node;void inorder(tree_pointer ptr) //inorder traversal 순회{if(ptr) {inorder(ptr->left_child);printf("%4d",ptr->data);inorder(ptr->right_child);}}tree_pointer search(tree_pointer root, int key) //탐색함수{if(!root) return NULL;if(key == root->data) return root;if(key < root->data)return search(root->left_child, key);return search(root->right_child, key);}tree_pointer modified_search(tree_pointer binary, int su){while(binary) {if(su == binary->data) return NULL;if(su < binary->data){if(binary->left_child) binary = binary->left_child;else break;}else{if(binary->right_child) binary = binary->right_child;else break;}}return binary;}void insert_node(tree_pointer *node, int num) //삽입함수{tree_pointer ptr, temp = modified_search(*node, num);if(temp || !(*node)) {ptr=(tree_pointer) malloc(sizeof(node));if(IS_FULL(ptr)) {fprintf(stderr, "The memory is fulln");exit(1);}ptr->data = num;ptr->left_child = ptr->right_child=NULL;if(*node)if(num < temp->data) temp->left_child = ptr;else temp->right_child = ptr;else *node = ptr;}}void main(void){int jungsu[20]; //20개 정수생성 저장 장소int i, choice, gap;tree_pointer tree=NULL, ptr=NULL;srand( (unsigned)time( NULL ) );printf("서로 다른 20개의 정수 출력n");for(i=0; idata);else printf("찾는 값 없어요..n");break;case 3:printf("삽입을 선택하셨네요..값을 넣으세요 => ");scanf("%d", &gap);insert_node(&tree, gap);break;case 4:printf("종료 n");exit(1);}}while(1);순회결과 >>{탐색결과>>{삽입결과 >>{
    공학/기술| 2003.08.25| 5페이지| 1,000원| 조회(1,058)
    미리보기
  • [C 프로그램] infix->postfix 변환후 연산
    #include#include#include#define MAX_STACK_SIZE 100#define MAX_EXPR_SIZE 100typedef enum{ lparen,rparen,plus,minus,times,divide,mod,eos,operand}precedence;precedence stack_index[MAX_STACK_SIZE];char expr[MAX_EXPR_SIZE];int stack[MAX_STACK_SIZE];static int isp[]={0,19,12,12,13,13,13,0};static int icp[]={20,19,12,12,13,13,13,0};void push(int *top_index,precedence token);void int_push(int *top,int add);precedence pop(int *top_index);int int_pop(int *top);precedence get_token(char *symbol,int *n);void stack_full();void stack_empty();void postfix(int *minus);void change(int *minus);int eval(int *minus);int print_token(int num,char *post_index,int *index);void main(){int minus[30],m_is=0;printf("계산할 식을 넣어주세요(한자리수만 계산 가능):");gets(expr);postfix(minus);printf("후위연산으로 변환된 식:%sn",expr);change(minus);printf("이식의 답은 %d입니다.n",eval(minus));}void postfix(int *minus){// 수식을 후위 표기식으로 출력한다. 수식 문자열,스택, top은 전역적이다.char symbol,post_index[MAX_STACK_SIZE];precedence token;int n=0,index_expr=0,s=0,index=0,leng=0,m_is=0;int top_index=0;stack_index[0]=eos;if(expr[0]=='-'){post_index[index++]='-';post_index[index]='';minus[m_is++]=index-1;n=1;index_expr=1;}for(token=get_token(&symbol,&n);expr[index_expr]!='';token=get_token(&symbol,&n),index_expr++){if(token==operand){post_index[index++]=symbol;post_index[index]='';}else if(token==rparen){while(stack_index[top_index]!=lparen)index=print_token(pop(&top_index),post_index,&index);pop(&top_index);}else{while(isp[stack_index[top_index]]>=icp[token])index=print_token(pop(&top_index),post_index,&index);push(&top_index,token);if(expr[index_expr+1]=='-'){post_index[index++]='-';post_index[index]='';minus[m_is++]=index-1;n++;index_expr++;}}}while((token=pop(&top_index))!=eos)index=print_token(token,post_index,&index);for(s=0;s=MAX_STACK_SIZE-1){stack_full();return;}stack_index[++(*top_index)]=token;}precedence pop(int *top_index){if(*top_index==-1)stack_empty();return stack_index[(*top_index)--];}void int_push(int *top,int add){if(*top>=MAX_STACK_SIZE-1){stack_full();return;}stack[++(*top)]=add;}int int_pop(int *top){if(*top==-1)stack_empty();return stack[(*top)--];}void stack_full(){printf("더이상 저장할곳이 없습니다.n");}void stack_empty(){printf("더이상 output자료가 없으므로 끝내겠습니다.n");exit(1);}precedence get_token(char *symbol,int *n){*symbol=expr[(*n)++];switch(*symbol){case '(': return lparen;case ')': return rparen;case '+': return plus;case '-': return minus;case '/': return divide;case '*': return times;case '%': return mod;case ' ': return eos;default : return operand;}}int print_token(int num,char *post_index,int *index){switch(num){case 2 : post_index[(*index)++]='+';post_index[*index]='';return *index;case 3 : post_index[(*index)++]='-';post_index[*index]='';return *index;case 4 : post_index[(*index)++]='*';post_index[*index]='';return *index;case 5 : post_index[(*index)++]='/';post_index[*index]='';return *index;case 6 : post_index[(*index)++]='%';post_index[*index]='';return *index;default : return *index;}}
    공학/기술| 2003.08.25| 5페이지| 1,000원| 조회(1,204)
    미리보기
전체보기
받은후기 1
1개 리뷰 평점
  • A+최고예요
    0
  • A좋아요
    0
  • B괜찮아요
    1
  • C아쉬워요
    0
  • D별로예요
    0
전체보기
해캠 AI 챗봇과 대화하기
챗봇으로 간편하게 상담해보세요.
2026년 05월 14일 목요일
AI 챗봇
안녕하세요. 해피캠퍼스 AI 챗봇입니다. 무엇이 궁금하신가요?
2:05 오후
문서 초안을 생성해주는 EasyAI
안녕하세요 해피캠퍼스의 20년의 운영 노하우를 이용하여 당신만의 초안을 만들어주는 EasyAI 입니다.
저는 아래와 같이 작업을 도와드립니다.
- 주제만 입력하면 AI가 방대한 정보를 재가공하여, 최적의 목차와 내용을 자동으로 만들어 드립니다.
- 장문의 콘텐츠를 쉽고 빠르게 작성해 드립니다.
- 스토어에서 무료 이용권를 계정별로 1회 발급 받을 수 있습니다. 지금 바로 체험해 보세요!
이런 주제들을 입력해 보세요.
- 유아에게 적합한 문학작품의 기준과 특성
- 한국인의 가치관 중에서 정신적 가치관을 이루는 것들을 문화적 문법으로 정리하고, 현대한국사회에서 일어나는 사건과 사고를 비교하여 자신의 의견으로 기술하세요
- 작별인사 독후감