以前提过的统计罗马数字的问题。看看这个程序,帮忙解释一下。。。。看看用到什么知识了。各位大侠帮帮忙。。
看看这个程序,里面的许多句子都不太理解。还有里面的参数,
#include<stdio.h>
int n;
int i[101],v[101],x[101],l[101],c[101];
int num[]={1,4,5,9,10,40,50,90,100};
char s[][10]={"i", "iv","v","ix","x","xl","l","xc","c"
};
void print()
{
printf("%d: %d i, %d v, %d x, %d l, %d c\n",n,i[n],v[n],x[n],l[n],c[n]);
}
int main()
{
int j,t,k,ii,vv,xx,kk,ll,cc,f;
for(j=1;j<=100;j++)
{
ii=vv=xx=ll=cc=0;
t=j;
for(k=8;k>=0;k--)
{
while(t>=num[k])
{
t-=num[k];
for(f=0;s[k][f];f++)
{
if(s[k][f]=='i')ii++;
if(s[k][f]=='v')vv++;
if(s[k][f]=='x')xx++;
if(s[k][f]=='l')ll++;
if(s[k][f]=='c')cc++;
}
}
}
i[j]=i[j-1]+ii;
v[j]=v[j-1]+vv;
x[j]=x[j-1]+xx;
l[j]=l[j-1]+ll;
c[j]=c[j-1]+cc;
}
while(scanf("%d",&n),n)
{
print();
}
return 0;
}