情報処理5レポート課題(5)の解答例

更新:2008年6月2日


  1. 巾多項式の構造体を宣言し、 構築関数、画面表示関数、解放関数を定義して使ってください。 ただし、int型メンバは次数でなく項数を表すようにしてください。 構造体名の例はstruct Polynomialです。 また、画面表示関数の表示例は(1.2)t^0+(-3.4)t^1+(5.6)t^2+です。

polynomial.h
#include<stdio.h>
struct Polynomial{
	int Size;
	double* Element;
};

struct Polynomial Polynomial(int size);
void free_Polynomial(struct Polynomial *p);
void print_Polynomial(struct Polynomial *p);
polynomial.c
#include<stdio.h>
#include<stdlib.h>
#include"polynomial.h"

struct Polynomial Polynomial(int size){
	struct Polynomial result;
	result.Size=size;
	result.Element=malloc(size*sizeof(double));
	if(result.Element == NULL){
		printf("Polynomial:Out of Memory!\n");
		exit(1);
	}
	else{
		return result;
	}
}

void print_Polynomial(struct Polynomial *p){
	int i;
	for(i=0;i<p->Size;i++){
		printf("(%.3e)t^%d+", p->Element[i], i);
	}
	printf("\n");
	return;
}

void free_Polynomial(struct Polynomial *p){
	free(p->Element);
	return;
}
main_polynomial.c
#include<stdio.h>
#include"polynomial.h"

int main(void){
	int i;
	struct Polynomial x=Polynomial(5);
	for(i=0;i<x.Size;i++){
		x.Element[i]=(double)(i+1);
	}
	print_Polynomial(&x);
	free_Polynomial(&x);
	return 0;
}

info5/