| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1878 人关注过本帖
标题:什么都不输出,求大佬看哪里出问题了
只看楼主 加入收藏
li936395637
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2019-5-5
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:5 
什么都不输出,求大佬看哪里出问题了
程序代码:
//100人围成一圈,从1-3报数,报道3的人退出圈子,问最后留下的是几号//
#include<stdio.h>
main()
{
    int *p,i,k=0,l=100;
    int a[100];
    for(i=0;i<100;i++)
    {
        a[i]=i+1;
    }
    p=&a[0];
    for (i=0;i<100;i++)
    {
        if(*p==0)
        {
            p=p+1;
            continue;
        }


        k++;
        if(k==3)
        {
            *p=0;
            k=0;
            l--;
        }
        p=p+1;
         if(p>a+99)
            {
                p=a;
            }
        if(l==1)
        {
            printf("%d",*p);
            break;
        }
    }
}
搜索更多相关主题的帖子: 输出 int for i++ continue 
2019-05-05 21:04
豆豆的滴
Rank: 9Rank: 9Rank: 9
来 自:湖南
等 级:贵宾
威 望:33
帖 子:368
专家分:1087
注 册:2018-5-7
收藏
得分:5 
程序代码:
#include<stdio.h>
main()
{
    int *p,i,k=0,l=100;
    int a[100];
    for(i=0;i<100;i++)
    {
        a[i]=i+1;
    }
    p=&a[0];
    for (i=0;i<100;i++)
    {
        if(*p==0)
        {
            p=p+1;
            continue;
        }


        k++;
        if(k==3)
        {
            *p=0;
            k=0;
            l--;
        }
        p=p+1;
         if(p>a+99) //这个有点不懂你的
            {
                p=a;
            }
        if(l==1)
        {
            printf("%d",*p);
            break;
        }
    }
}
推荐一篇http://
2019-05-05 21:58
豆豆的滴
Rank: 9Rank: 9Rank: 9
来 自:湖南
等 级:贵宾
威 望:33
帖 子:368
专家分:1087
注 册:2018-5-7
收藏
得分:5 
#include <stdio.h>

 int M = 3;

int main()
{
    int n, s = 0;
    for (int i = 2; i <= 100; ++i)
        s = (s+M)%i;
    printf("%d\n", s+1);
    return 0;
}
这个最强
2019-05-05 22:02
word123
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:13
帖 子:333
专家分:1622
注 册:2014-4-5
收藏
得分:10 
#include<stdio.h>
//#define NUM 5
#define NUM 100
main()
{
    int *p,i,k=0,l=NUM;
    int a[NUM];
    for(i=0;i<NUM;i++)
    {
        a[i]=i+1;
    }
    p=&a[0];
    for (;;)  //这里必须是一个死循环,因为你无法知道整个数组循环多少圈可以只剩最后一个数
    {
        if(*p==0)
        {
            p=p+1;
            if(p>a+NUM-1)p=a;     //这里是你程序的一个致命错误的地方,若最后数组最后一个数是0,则p会跑到数组之外
            continue;
        }

        k++;
        if(k==3)
        {
            *p=0;
            k=0;
            l--;
        }
        p=p+1;
         if(p>a+NUM-1)
            {
                p=a;
            }
        if(l==1)
        {
            for(p=a;*p==0;p++){       //若你刚好删除了倒数第二个数,p+1并不一定是最后一个数,需要遍历整个数组才能找到
            }
            printf("%d",*p);
            break;
        }
    }
}
2019-05-05 23:03
word123
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:13
帖 子:333
专家分:1622
注 册:2014-4-5
收藏
得分:0 
回复 3楼 豆豆的滴
简单是简单,不过要懂其中的数学推导原理才行,其中蕴含的技巧可能比较强
2019-05-05 23:07
豆豆的滴
Rank: 9Rank: 9Rank: 9
来 自:湖南
等 级:贵宾
威 望:33
帖 子:368
专家分:1087
注 册:2018-5-7
收藏
得分:0 
回复 5楼 word123
嗯嗯主要是逻辑要清晰
2019-05-05 23:11
快速回复:什么都不输出,求大佬看哪里出问题了
数据加载中...
 
   



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

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