~cpp
#include <stdio.h>
//반복된 문자열 출력
void fstring(FILE* f,char c, int n)
{
int i;
for(i=0;i<n;i++)
{
fprintf(f,"%c",c);
}
fprintf(f,"\n");
}
int main()
{
FILE* file;
int a[11] = {3,3,3,3,3,3,3,3,3,3,3};
int asize = (sizeof(a)/sizeof(int));
int i,x,f,addcount,mulcount;
//input x
printf("x = ");
scanf("%d",&x);
//호너의 법칙으로 계산
i=asize;
f=addcount=mulcount=0;
addcount--; // 처음 대입하는 것은 덧셈이 아니므로 보정값 -1
while(1)
{
i--;
f += a[i];
addcount++;
if(i==0) break;
f *= x;
mulcount++;
}
//파일 출력
file = fopen("result.txt","wt");
fstring(file,'=',53);
fprintf(file,"|index|");
for(i=0;i<asize;i++) fprintf(file," %d |",i);
fprintf(file,"\n");
fstring(file,'=',53);
fprintf(file,"| data|");
for(i=0;i<asize;i++) fprintf(file," %d |",a[i]);
fprintf(file,"\n");
fstring(file,'=',53);
fprintf(file,"# Horner Function Value ----> %d\n", f);
fprintf(file,"# Horner ADD Count ----> %d\n",addcount);
fprintf(file,"# Horner Multiply Count ----> %d\n",mulcount);
fclose(file);
return 0;
}