#include //¹è¿­À» ÀÌ¿ëÇÑ ¿¬»ê #include #include #include #define MAX_TERMS 100 float CalcPoly(float*,int*,int , float, char* ); int main(void) { float *coef; int *expon; int numOfTerm1; char *pm; float x; int i; char menu; while(1) { printf("--------¸Þ´º---------\n"); printf("1.ÀÔ·Â\n"); printf("2.¿¬»ê\n"); printf("3.Á¾·á\n"); scanf("%c", &menu); getchar(); switch(menu) { // ÀÔ·Â case 'i': case '1': printf("Ç×ÀÇ °³¼ö¸¦ ÀÔ·ÂÇϼ¼¿ä : "); scanf("%d", &numOfTerm1); getchar(); pm = (char*)malloc(sizeof(char)*numOfTerm1-1); expon = (int*)malloc(sizeof(int)*numOfTerm1); coef = (float*)malloc(sizeof(float)*numOfTerm1); for(i = 0; i < numOfTerm1; i++) { printf("%d °è¼ö : ", i+1); scanf("%f", &coef[i]); getchar(); printf("%d Â÷¼ö : ", i+1); scanf("%d", &expon[i]); getchar(); if(i != numOfTerm1-1) { printf("%d ¿¬»ê(+,-,*,/) : ", i+1); scanf("%c", &pm[i]); getchar(); } } break; // ´ÙÇ×½Ä °è»ê case 'c': case '2': printf("x value : "); scanf("%f", &x); getchar(); printf("%f\n", CalcPoly(coef, expon, numOfTerm1, x, pm)); break; // ÇÁ·Î±×·¥ Á¾·á case 'x': case '3': printf("ÇÁ·Î±×·¥À» Á¾·áÇÕ´Ï´Ù.\n"); exit(0); default : printf("¸Þ´º¸¦ À߸ø ¼±ÅÃÇϼ̽À´Ï´Ù.\n"); } } return 0; } float CalcPoly(float *coef,int *expon ,int nt, float x, char *pm) { float result = 0; int i; for(i = 0; i < nt; i++) { if(i == 0) { result += coef[i] * pow(x, expon[i]); continue; } if(pm[i-1] == '+') result += coef[i] * pow(x, expon[i]); // °è¼ö * Áö¼ö else if(pm[i-1] == '-') result -= coef[i] * pow(x, expon[i]); else if(pm[i-1] == '*') result *= coef[i] * pow(x, expon[i]); else if(pm[i-1] == '/') result /= coef[i] * pow(x, expon[i]); } return result; }