谁能帮我注释下这段程序

来源:百度知道 编辑:UC知道 时间:2024/06/25 01:17:45
#include "stdio.h"
void shanchu(int a[],int n,int i)
{int j;
for(j=i;j<n;j++)
a[j]=a[j+1];
}
void mian()
{int a[30],n,k,m,t,i;
scanf("% %d %d",&n,&k,&m);
for(i=1;i<=n;i++)
a[i]=i;
while(n!=1)
{t=(k+m-1)%n;
if(t==0)
{printf("%3d",a[n]);n=n-1;k=1;}
else
{printf("%3d",a[t]);
shanchu(a,n,t);n=n-1;k=t;
}
}
printf("the last monkey is the number ");
printf("%d\n",a[1]);
}

#include "stdio.h"//这行必写的……
void shanchu(int a[],int n,int i)//定义一个函数,三个参数
{
int j;
for(j=i;j<n;j++)//循环
a[j]=a[j+1];//将数组里面位置在n-1之前的元素全部向前移 即做删除操作
}
void mian()//main函数
{
int a[30],n,k,m,t,i;
scanf("%d %d %d",&n,&k,&m);//让用户输入nkm
for(i=1;i<=n;i++)//循环
a[i]=i;//给数组元素赋值
while(n!=1)//只要n不等于1,就一直做这个循环
{
t=(k+m-1)%n;//一个求t的运算
if(t==0)//当t为0时
{
printf("%3d",a[n]);//输出数组中第n-1个元素
n=n-1;//n自减
k=1;//令k=1
}
else//t不等0
{
printf("%3d",a[t]);//输出第t-1个元素
shanchu(a,n,t);执行函数
n=n-1;
k=t;
}
}
printf("the last monkey is the number ");
printf("%d\n",a[1]);//两个输出
}