设有n个人坐一圈并按顺时针方向从1到n编号,从第s个人开始进行1到m的报数。报数到第m个人。此人出圈,再从他的下一个人重新开始从1到m报数。如此进行下去直到所有的人都出圈为止。先要求按出圈次序,每10个人为一组,给出这n个人的顺序表。请编写函数Josegh

admin2013-12-10  6

问题 设有n个人坐一圈并按顺时针方向从1到n编号,从第s个人开始进行1到m的报数。报数到第m个人。此人出圈,再从他的下一个人重新开始从1到m报数。如此进行下去直到所有的人都出圈为止。先要求按出圈次序,每10个人为一组,给出这n个人的顺序表。请编写函数Josegh()实现此功能,并调用函数WriteDat()把编号按照出圈顺序输出到文件out.dat中。设n=100,S=1。m=10进行编程。
【试题程序】
    #include
    #define N 100
    #define S 1
    #define M 10
    int p[-loo’],n,s,m;
    void WriteDat(void);
    void Josegh(void)
    {
    }
    void main()
    {
    m=M;n=N;s=S;
    Josegh();
    WriteDat();
    }
    void WriteDat(void)
    {
    int i:
    FILE*fp;
    fp=fopen(”out.dat”,”W”);
    for(i=N一1li>=0;i一一){
    printf(”%4d”.p);
    fprintf(fp,‘%4 d’,p);
    if(i%10==O){
    printf(“\、n”)}
    fprintf(fP,“\n”);
    }
  }
  fclose(fp);
}

选项

答案void Josegh(void) {int i.j,temp; /*定义变量*/ for(i=0;i=2;i一一) /*依次出圈*/ {s=(s+m一1)%it temp=pFs]; for(j=s;j
解析
转载请注明原文地址:https://kaotiyun.com/show/NElZ777K
0

最新回复(0)