TrabalhosGratuitos.com - Trabalhos, Monografias, Artigos, Exames, Resumos de livros, Dissertações
Pesquisar

Analise De Sistemas

Exames: Analise De Sistemas. Pesquise 862.000+ trabalhos acadêmicos

Por:   •  12/3/2014  •  354 Palavras (2 Páginas)  •  299 Visualizações

Página 1 de 2

#include <stdlib.h>

// O programa abaixo constroi uma lista encadeada circular para

// representar uma "roda" de N pessoas numeradas de 1 a N.

// Em seguida, elimina cada M-ésima pessoa da lista a partir da

// primeira. Imprime o número da pessoa que sobrar.

int main (int argc, char *argv[])

{

int i, N = atoi(argv[1]), M = atoi(argv[2]);

link t, x;

x = t = malloc(sizeof (struct node));

t->item = 1;

t->next = t;

for (i = 2; i <= N; i++) {

x->next = malloc(sizeof (struct node));

x = x->next;

x->item = i;

x->next = t;

}

while (x != x->next) {

for (i = 1; i < M; i++)

x = x->next;

printf("%d morre\n", x->next->item);

x->next = x->next->next;

}

printf("sobrou %d\n", x->item);

return 0;

}

#include <stdio.h>

#define N 1000

main()

{

int n, m;

int i, j;

int proximo[N+1];

printf("Entre n (1< n <= %d): ", N);

scanf("%d", &n);

printf("Entre m (>=2): ");

scanf("%d", &m);

for (i=1; i<n; ++i)

proximo[i]=i+1;

proximo[n]=1;

i=n;

while (n>0) {

for (j=1; j<m; ++j)

i=proximo[i];

/* Agora i aponta para a (m-1)-esima pessoa a partir da ultima pessoa

executada. */

...

Baixar como (para membros premium)  txt (1.6 Kb)  
Continuar por mais 1 página »
Disponível apenas no TrabalhosGratuitos.com