| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1040 人关注过本帖
标题:报数问题函数好像有错了?
只看楼主 加入收藏
lzxm160
Rank: 1
等 级:新手上路
帖 子:103
专家分:0
注 册:2006-12-26
收藏
 问题点数:0 回复次数:5 
报数问题函数好像有错了?
#include<stdio.h>
#include<stdlib.h>
void main()
{
    int n, s, m; //int num[n+1], out[n];
    void count(int n, int s, int m);


    count(n, s, m);

}
void count(int n, int s, int m)
{       //int x=n;
    int i, j = 0, t = 0;
    int num[10];
    int out[9];
    printf("input n:\n");
    scanf("%d", &n);
    printf("input s:\n");
    scanf("%d", &s);
    printf("input m:\n");
    scanf("%d", &m);
    if (m <= 0){printf("m<=0");exit(0);}
    
    

    for (i = 0;i < n + 1;i++)
        {num[i] = i;printf("num[%d]=%d\n",i,num[i]);}
    for (i = s;t < n;i++)
    {
        if (i == n)i = 1;
        while (num[i] != 0)
        {
            j++;
            if (j == m)
            {
                out[t] = num[i];
                t++;
                num[i] = 0;
                j = 0;
            }
        }
    }
    for(i=0;i<n;i++)
    printf("%d",out[i]);
}
搜索更多相关主题的帖子: int 函数 num void 
2008-01-08 22:19
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
收藏
得分:0 
什么报数问题可以给更多的提示吗?
2008-01-08 22:32
lzxm160
Rank: 1
等 级:新手上路
帖 子:103
专家分:0
注 册:2006-12-26
收藏
得分:0 
设N个人围做在一个圆桌周围,从第S 个人开始报数,数到第M个人让他出局,然后下一局,求出局序列
2008-01-08 22:34
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
收藏
得分:0 
这个前几天写过了,你自己找一下啊,和猴子选大王是一个说法....c++里面找找啊也有...
2008-01-09 10:18
josen0205
Rank: 2
来 自:江苏
等 级:论坛游民
帖 子:307
专家分:52
注 册:2007-5-8
收藏
得分:0 
/*************************************************************/
/*       M个人围成一圈,从1至N开始顺序循环报数                */
/*       每数到N的人出列,输出该数值,直至全部输出             */
/*************************************************************/
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>

/* 循环链表结构 */
typedef struct Node{
    int data;
    struct Node *next;
}*LinkList;

int CreateList(LinkList &L,int m); /* 将m个人1到m编号依次插入循环链表L中 */
int GetNode(LinkList &L,int n); /* 依次删除输出链表中符合要求的节点 */

int CreateList(LinkList &L,int m)
{
    int i=1;
    LinkList tmp,p;
    L=(LinkList)malloc(sizeof(struct Node));    
    if(L==NULL)
    {
        printf("动态分配内存失败!");
        return -1;
    }
    p=L;
    for(i=1;i<=m;i++) /* 依次为节点分配内存,插入链表 */
    {
        tmp=(LinkList)malloc(sizeof(struct Node));
        if(tmp==NULL)
        {
            printf("动态分配内存失败!");
            return -1;
        }
        tmp->data=i;
        p->next=tmp;
        p=tmp;
    }
    p->next=L->next; /* 最后一个节点next指针指向第一个节点 */
    return 0;
}

int GetNode(LinkList &L,int n)
{
    LinkList p,s;
    int i=0;
    p=L->next;
    while(p->next!=p) /* 链表中只有一个节点时终止 */
    {
        i++;
        if(i==n-1) /* 找到报数n的节点,输出节点值并删除节点 */
        {
            s=p->next;
            p->next=p->next->next;
            printf("%d ",s->data);
            i=0;
            free(s);
        }
        p=p->next;
    }
    printf("%d ",p->data);
    free(p);
    free(L);
    return 0;
}

int main()
{
    int m,n;
    LinkList L;

    printf("Enter the total number of the person[m]:"); /* 总人数 */
    scanf("%d",&m);
    printf("Enter the number of get out[n]:");
    scanf("%d",&n);
    CreateList(L,m);
    printf("The out queue is:\n");
    GetNode(L,n);
    printf("\n");
    getch();
    return 0;
}

只有想不到,没有做不到
2008-01-09 16:12
龙航四海
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:58
专家分:102
注 册:2012-10-17
收藏
得分:0 
#include <stdio.h>
#include <stdlib.h>
#define N 100
main()
{
    static int num=0;
    int i,j,n,m,a[N]={0},flag=1;
    printf("输入猴子的数目n和基数m:");
    scanf("%d%d",&n,&m);
   
    for(i=1;i<=n;i++)
        a[i]=i;
    a[n+1]=0;
    while(a[2]!=0)
    {
        for(i=1;i<=n;i++,flag++)
            if(flag==m)
            {
                flag=0;
                printf("第%d只猴子被淘汰!\n",a[i]);
                for(j=i;j<=n;j++)
                    a[j]=a[j+1];
                n--;
               
                    i=i-1;   
            }        
    }
    printf("猴王是第%d只猴!\n",a[1]);
}
我试过了,应该没问题,希望能对你有用!
2012-12-03 20:16
快速回复:报数问题函数好像有错了?
数据加载中...
 
   



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

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