Jump to content
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

Sign in to follow this  
pessantiago

mooshak ajuda

Recommended Posts

pessantiago

boas tenho o seguite codigo compilo e funciona mas no mooshak não dame o erro invalid function

22.Suponha que se pretende eleger um líder dum grupo de  N pessoas. O método de eleição consiste em sentar as N pessoas numa mesa redonda e eliminar sucessivamente a pessoa sentada na posição M. Por exemplo, para N=8 e M=5 a ordem de eliminação será,  5,2,8,7,1,4,6 e o líder eleito será o 3

josephus.jpg

#include <stdio.h>
#include <stdlib.h>

int contapessoas(int lugs[50])
{
    int i;
    int npess=0;
    for (i=0;i<50;i++)
        npess=npess+lugs[i];

        return npess;

}
int main()
{
    int lugar[50],n,m;
    int i,lugactual;
    int psaltadas;
do{
   scanf("%d",&n);
   }while(n<=0 && n>=0);
    scanf("%d",&m);

        for(i=0;i<n;i++)
        lugar[i]=1;
        for(i=n;i<50;i++)
            lugar[i]=0;
            lugactual=0;

    while(contapessoas(lugar)>1)
    {
        psaltadas=0;
        while(psaltadas<n){
        if(lugar[lugactual]==1)
        psaltadas++;
        lugactual++;
        if (lugactual==n)
            lugactual=0;

        }
        if (lugactual == 0){
        lugactual = n-1;
        }else
        lugactual--;
        lugar[lugactual]=0;
        }

        for(i=0;i<n;i++)
        if(lugar[i]==1)
        printf("%d\n",i);



return 0;

}

[/img]

Share this post


Link to post
Share on other sites
mogers

O mooshak às vezes dá invalid function em vez de runtime error. Creio que o erro devido deve ser rte. De certeza que N é no máximo 50?


"What we do for ourselves dies with us. What we do for others and the world, remains and is immortal.", Albert Pine

Blog pessoal : contém alguns puzzles, algoritmos e problemas para se resolver com programação.

Share this post


Link to post
Share on other sites
mogers

Eu não vejo motivos para o erro dado pelo mooshak, mas tens um erro no código,

while(psaltadas<n){

devia ser

while(psaltadas < m){

é preciso ter cuidado com variáveis com letras que se podem confundir (tal como L minúsculo e 1, em algumas fontes é fácil de confundir).


"What we do for ourselves dies with us. What we do for others and the world, remains and is immortal.", Albert Pine

Blog pessoal : contém alguns puzzles, algoritmos e problemas para se resolver com programação.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.