/*----------------------------------------------------------------------------------------- * Project Name : Array * Programmed by : Kim Young Jae * Student Number : 2009063003 * (c) Copyright by Department of Computer Education at Chungbuk * National University, Chungbuk, Republic of Korea ------------------------------------------------------------------------------------------*/ #include #include #include #define MAX 100 float cal(float *poly, int degree, float xval){ float result = 0; for (int i = 0; i <= degree; i++){ result += poly[i] * pow(xval, i); } return result; } float add(float *poly1, int degree1, float *poly2, int degree2, float xval){ int degree3; float poly3[MAX] = { NULL }; float result; if (degree1 > degree2) degree3 = degree1; else degree3 = degree2; for (int i = 0; i < degree3; i++){ poly3[i] = poly1[i] + poly2[i]; } result = cal(poly3, degree3, xval); return result; } float multi(float *poly1, int degree1, float *poly2, int degree2, float xval){ int degree3; float poly3[MAX] = { NULL }; float result; degree3 = degree1 + degree2; for (int i = 0; i <= degree1; i++){ for (int j = 0; j <= degree2; j++){ poly3[i + j] += poly1[i] * poly2[j]; } } result = cal(poly3, degree3, xval); return result; } void main(){ float poly1[MAX] = { NULL }; int degree1; float poly2[MAX] = { NULL }; int degree2; float poly3[MAX] = { NULL }; int menu; float result, xval; printf("ù¹ø° ´ÙÇ×½ÄÀÇ ÃÖ°íÂ÷Ç×ÀÇ Áö¼ö : "); scanf("%d", °ree1); printf("\n * ¿À¸§Â÷¼øÀ¸·Î ÀÔ·ÂÇϽÿÀ *\n (0¹ø° °è¼ö´Â »ó¼ö¸¦ ¶æÇÔ) \n"); for (int i = 0; i <= degree1; i++){ printf("%d¹ø° °è¼ö¸¦ ÀÔ·ÂÇϼ¼¿ä : ", i); scanf("%f", &poly1[i]); } printf("\n"); printf("µÎ¹ø° ´ÙÇ×½ÄÀÇ ÃÖ°íÂ÷Ç×ÀÇ Áö¼ö : "); scanf("%d", °ree2); printf("\n"); for (int i = 0; i <= degree2; i++){ printf("%d¹ø° °è¼ö¸¦ ÀÔ·ÂÇϼ¼¿ä : ", i); scanf("%f", &poly2[i]); } printf("\n"); while (true){ printf("********Poly*******\n"); printf("1.poly1\n"); printf("2.poly2\n"); printf("3.poly1 + poly2\n"); printf("4.poly1 * poly2\n"); printf("5.EXIT\n"); printf("********Poly*******\n\n"); printf("¿øÇÏ´Â ¸Þ´º¸¦ ¼±ÅÃÇϼ¼¿ä : "); scanf("%d", &menu); switch (menu){ case 1: printf("x°ªÀ» ÀÔ·ÂÇϼ¼¿ä : \n"); scanf("%f", &xval); result = cal(poly1, degree1, xval); printf(" °á°ú°ªÀº %fÀÔ´Ï´Ù\n", result); break; case 2: printf("x°ªÀ» ÀÔ·ÂÇϼ¼¿ä : \n"); scanf("%f", &xval); result = cal(poly2, degree2, xval); printf(" \n°á°ú°ªÀº %fÀÔ´Ï´Ù\n", result); break; case 3: printf("x°ªÀ» ÀÔ·ÂÇϼ¼¿ä : \n"); scanf("%f", &xval); result = add(poly1, degree1, poly2, degree2, xval); printf(" °á°ú°ªÀº %fÀÔ´Ï´Ù\n", result); break; case 4: printf("x°ªÀ» ÀÔ·ÂÇϼ¼¿ä : \n"); scanf("%f", &xval); result = multi(poly1, degree1, poly2, degree2, xval); printf(" °á°ú°ªÀº %fÀÔ´Ï´Ù\n", result); case 5: exit(0); } } }