#include<stdio.h>
#include<stdio.h>
#define MAX_DEGREE 101
typedef struct // 다항식을 입력할 구조체
{
int degree;
float coef[MAX_DEGREE];
}polynomial;
//define files
void input_a();
void input_b();
discern(); // scanf 선언문의 오류를 해결 못하였습니다.
void add();
void addbig_a();
void addbig_b();
void resoult();
polynomial a,b,c;
//main functions
void main()
{
input_a();
input_b();
switch( discern()) {
case 1 : addbig_a();
break;
case 0 : add();
break;
case -1 : addbig_b();
break;
}
result(); // reslut 정의가 안되었다고 하나 해결을 하지 못하였습니다.
}
void input_a()
{
int i,k;
printf("a(x) 다항식의 차수를 입력하시오.:\n");
scanf("%d",&a.degree);
printf("다항식의 상수를 입력하시오 : \n");
printf("최고차 항부터 상수가 0이면 0도 입력하시오 \n");
k=a.degree;
for(i=0;i<=a.degree;i++);
{
printf("X^%d의 상수를 입력하시오 :",k--);
scanf("%f",&a.coef[i]);
{
printf("\n잘못 입력하였습니다. 처음부터 다시 하십시오 \n");
exit();
}
}
}
void input_b()
{
int i,k;
printf("\nb(x)다항식의 차수를 입력하시오 : ");
scanf("%d",&b.degree);
printf("\n다항식의 상수를 입력하시오.\n");
printf("최고차 항부터 상수가 0이면 0도 입력하시오\n");
k=b.degree;
for(i=0;i<=b.degree;i++)
{
printf("X^%d의 상수를 입력하시오 : ",k--);
scanf("%f",&b.coef[i]);
if(b.coef[0] == 0) // 처음 입력하는 최고차항이 0일때
{
printf("\n 잘못 입력했습니다. 처음부터 다시 하십시오\n");
exit(1);
}
}
}
discern()
{
if(a.degree>b.degree)
return(1);
else if (a.degree<b.degree)
return(-1);
else
return (0);
}
void add()
{
int i;
c.degree = a.degree;
for(i=0; i<=c.degree; i++)
c.coef[i]=a.coef[i] + b.coef[i];
}
void addbig_a()
{
int i,j;
c.degree = a.degree;
j=a.degree-b.degree;
for(i=a.degree;i>=0;i--)
{
if(i-j>=0)
c.coef[i] = a.coef[i] + b.coef[i-j];
else
c.coef[i] = a.coef[i];
}
}
void addbig_b()
{
int i,j;
c.degree = b.degree;
j=b.degree = a.degree;
for(i=b.degree;i>=0;i--)
{
if(i-j>=0)
c.coef[i]=a.coef[i-j] + b.coef[i];
else
c.coef[i] = b.coef[i];
}
}
void result()
{
int i;
printf("\n결과는 : ");
for(i=0;i<=c.degree;i++)
{
if(c.degree-i!=0)
{
if(c.coef[i]!=0)
{
printf("%.0f X^%d",c.coef[i],c.degree-i);
printf("+");
}
}
printf("\n");
}
}
컴파일 하면 자꾸 result 하고 scanf 오류 뜬단깽.. 아따 공부하기 힘드네 좀 알려줘..
둘다 함수 선언부가 문제인듯.. discern()는 코드상엔 int 리턴인듯 한데 선언할때 그냥 discern();로만 선언하는데 이건 호출하는것처럼 보이게 되어 버렸고.. result() 함수의 선언쪽에서 result <-- 오타난듯..