baidu_33506405 2015-12-25 05:53 采纳率: 0%
浏览 1360

请各位前辈看一下我这个程序错在哪里

这个程序是一组人循环报数,报到3的退出,求最后剩下的那个人是第几号,改了好多次都调试不成功。所以来请教各位前辈们。谢谢。
//报数,报到3的退出,求最后剩下的成员序数

#include

void function(int *a, int n)
{
int i = 0, k = 1;

while (n > 1)
{
    while (1)
    {
        if ( (a[i] != '\0') && (k != 3) && (a[i] != 0) )
        {
            i++;
            k++;
        }//end-if
        else break;
    }//end-while

    if (a[i] == '\0') i = 0;
    else if (a[i] == n+1) i++;
         else if (k == 3)
              {
                  a[i] = n;
                  k = 1;
                  i++;
                  n--;
              }
}

}

/*-----------------------------------------------------------*/
int main(void)
{
int a[100];
int i, n;

printf("amount : ");
scanf("%d", &n);

for (i = 0; i < n; i++)  a[i] = 1;

function(a, n);

for (i = 0; i < n; i++)
{
    printf("The remaining amount is %d.\n", a[i]);
}

return 0;

}


  • 写回答

3条回答 默认 最新

  • ghwolf_q 2015-12-25 06:11
    关注

    看不明白 你写的程序不对 
    for (i = 0; i < n; i++) a[i] = 1; 这个是数组里面全是1,成员全是1,后面在用的时候就不明白了 
    你可以直接写一个循环 让=3的a【i】的后面的往前提(for 循环 镶嵌 ) 我想到的是这些 你试试吧

    评论

报告相同问题?

悬赏问题

  • ¥15 帮我写一个c++工程
  • ¥30 Eclipse官网打不开,官网首页进不去,显示无法访问此页面,求解决方法
  • ¥15 关于smbclient 库的使用
  • ¥15 微信小程序协议怎么写
  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
  • ¥20 怎么用dlib库的算法识别小麦病虫害
  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
  • ¥15 java写代码遇到问题,求帮助
  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教