
Solução em C do Problema 7
/*
* SOLUCAO 1
*/
#include <stdio.h>
#define MAX 100
int main() {
int n, /* numero de elementos da sequencia */
i, j,
comp, /* comprimento corrente do vetor seq */
conta, vezes;
float seq[MAX];
printf("\nDigite o numero de elementos da sequencia: ");
scanf("%d", &n);
printf("Digite uma sequencia de %d numeros reais: ", n);
for (i = 0; i < n; i++)
scanf("%f", &seq[i]);
for (i = 0; i < n; i++) {
/* conta o numero de vezes que seq[i] aparece no vetor a partir da posição i */
vezes = 1;
j = i + 1;
while (j < n)
if (seq[j] != seq[i])
j++;
else {
vezes++;
/* quando repete, remove */
n--;
seq[j] = seq[n];
}
printf("%f ocorre %d vezes\n", seq[i], vezes);
}
return 0;
}
/*
* SOLUCAO 2
*/
#include <stdio.h>
#define MAX 100
int main() {
int n, /* comprimento da sequencia de entrada */
i, j,
conta[MAX], /* contador de repeticoes de cada numero da sequencia */
comp = 0; /* comprimento do vetor conta */
float seq[MAX]; /* sequencia de entrada sem repeticoes */
printf("\nDigite o comprimento da sequencia: ");
scanf("%d", &n);
printf("Digite uma sequencia de %d numeros reais: ", n);
for (i = 0; i < n; i++) {
scanf("%f", &seq[comp]);
/* procura esse numero no vetor seq a partir do inicio */
for (j = 0; seq[j] != seq[comp]; j++); /* comando vazio! */
if (j == comp) {
/* se o numero nunca tinha aparecido */
conta[comp] = 1;
comp++;
}
else
conta[j]++;
}
/* imprime o resultado */
for (j = 0; j < comp; j++)
printf("O numero %f aparece %d vezes na sequencia.\n", seq[j], conta[j]);
return 0;
}
História
da Computação | Listas de
Exercícios | Problemas Resolvidos | macmulti@ime.usp.br