Analise De Sistemas
Exames: Analise De Sistemas. Pesquise 862.000+ trabalhos acadêmicosPor: silclo • 12/3/2014 • 354 Palavras (2 Páginas) • 299 Visualizações
#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. */
...