| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 363 人关注过本帖
标题:自己用C写了一个约瑟夫问题的程序,,,出现了一点问题
只看楼主 加入收藏
yq1544638566
Rank: 1
等 级:新手上路
帖 子:14
专家分:7
注 册:2011-3-1
结帖率:100%
收藏
 问题点数:0 回复次数:0 
自己用C写了一个约瑟夫问题的程序,,,出现了一点问题
调试没发现问题,但从函数goot()后就运行不了了
#include<stdio.h>
void goot(int pi[],int m);
main(){
    int person[30];
    int n,i,s;
    n=30;
    printf("请输入循环数:\n");
    scanf("%d",&s);
    for(i=0;i<n;i++)
        person[i]=i+1;      //为数组赋初始值
    printf("队列原始数据的编号:\n");
    for(i=0;i<n;i++)
        printf("person[%d]=%d\t",i,person[i]);
    printf("\n");
    goot(person,s);
}
void goot(int pi[],int m){
    int temp,i,t,j,*p,k,r;
    k=m;
    p=pi;
    for(r=0;r<k;r++){
        while(temp<7){              //跳过6个数,输出第7个数
            temp=0;
            if(p==(pi+m)){        //如果到表尾,则将p指向表头  
                p=pi;
                temp=temp+1;
                }
            else{                 //如果未到表尾,则控制变量temp+1,,,指针变量p+1
                temp=temp+1;
                p=p+1;
            }
        }
        t=*p;
        for(i=0;i<m;i++){         //找出输出的是数组中第i个数
            if(t==pi[i])
                j=i;
        }
        for(j=i;j<m;j++){        //从第i个数开始后面的数向前移一位
            pi[j]=pi[j+1];
        }
        pi[m]=t;              //将抽中的数赋值给数组的最后一个
        m--;                 //将数组的长度缩短一位
    }
    printf("出队顺序值:\n");
    for(i=0;i<m;i++)
        printf("pi[%d]=%d\t",i,pi[i-1]);
    printf("\n");
}
搜索更多相关主题的帖子: 约瑟夫 
2011-03-27 17:53
快速回复:自己用C写了一个约瑟夫问题的程序,,,出现了一点问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016079 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved