Ir ao conteúdo
  • Cadastre-se

C Programa que faz a seguinte sequência de ações


lsnkesp

Posts recomendados

Citação

a. Preenchimento do vetor por leitura, sendo aceitos para armazenamento apenas valores positivos, maiores do que zero;
b. Impressão dos elementos do vetor em uma linha, usando dois espaços em branco para separar os valores de cada elemento;
c. Rotação dos elementos do vetor, com o deslocamento de todos os valores dos elementos para a posição anterior, exceto o primeiro valor, que deve ser colocado na posição do último elemento;
d. Repetição do item b;
e. Soma do índice de cada elemento ao conteúdo da próxima posição, exceto o índice, que deve ser somado ao primeiro elemento;
f. Repetição do item b;
g. Leitura de um valor inteiro. Determinação e apresentação do número de ocorrências de divisores desse valor – exceto o 1 – no vetor.

Boa noite, estou fazendo essa questão, mas não entendi o que o enunciado da letra e) quer dizer, alguém me ajuda?

Já fiz todas as outras, que ficou:

#include <stdio.h>
#define T 5
int main(void) {
	int vetor[T], soma = 0, valor, d = 0;
	for (int i = 0; i < T; ++i)
	{
		scanf("%d", &vetor[i]);
		if(vetor[i]==0)
		{
			printf("Precisa ser > 0.\n");
			scanf("%d", &vetor[i]);
		}
	}

	int ultimo = vetor[T-1];

	for (int i = 0; i < T; ++i)
	{
		printf("%d ", vetor[i]);
	}
	
	for (int i = T-1; i > 0; --i)
	{
		vetor[i] = vetor[i-1];
	}

	vetor[0] = ultimo;

	printf("\n");

	for (int i = 0; i < T; ++i)
	{
		printf("%d ", vetor[i]);
	}

	printf("\nEntre com o valor inteiro.\n");
	scanf("%d", &valor);

	for (int i = 1; i < T; ++i)
	{
		if (valor%vetor[i]==0)
		{
			d++;
			if (vetor[i]==1)
			{
				d--;
			}
		}
	}

	printf("\nNumero de ocorrencias de divisores desse valor (exceto o 1) no vetor: %d\n", d);

	return 0;
}

Agradeço se alguém der uma ideia.

Link para o comentário
Compartilhar em outros sites

58 minutos atrás, natesp disse:

Boa noite, estou fazendo essa questão, mas não entendi o que o enunciado da letra e) quer dizer, alguém me ajuda?

 

Soma é uma escolha equivocada de palavra, melhor é Adição mesmo, e soma é o resultado da adição que por muitas vezes se refere a operação, inclusive no dicionário.

 

 

 

...

 

 

 

e. Adição do índice de cada elemento ao conteúdo da próxima posição, exceto o (último) índice, que deve ser somado ao primeiro elemento;

 

 

 

Índice é um valor inteiro que escala as posições do vetor. Ou seja, a primeira posição do vetor é o índice 0, segundo índice 1...

 

 

 

Entendeu, sabe o que fazer?

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

"de cada", interpretei por repetição:

 

em que o procedimento adiciona o índice do elemento atual ao valor do próximo elemento.

 

Quando sobre o último, o próximo é o primeiro porque se imagina os elementos ligados sobre a forma de um círculo.

 

8 horas atrás, natesp disse:

Então, o que devo fazer é somar o último índice com o primeiro elemento (valor da posição 0) ou com a posição (0)?

 

Essa posição que quero dizer é o índice

 

e repete com os outros.

 

Estranho é, se estou certo, ao elemento da segunda posição se adiciona 0, pois 0 é o índice da primeira posição.

 

Você entendeu assim também?

 

Link para o comentário
Compartilhar em outros sites

5 horas atrás, mauro_b disse:

"de cada", interpretei por repetição:

 

em que o procedimento adiciona o índice do elemento atual ao valor do próximo elemento.

 

Quando sobre o último, o próximo é o primeiro porque se imagina os elementos ligados sobre a forma de um círculo.

 

 

e repete com os outros.

 

Estranho é, se estou certo, ao elemento da segunda posição se adiciona 0, pois 0 é o índice da primeira posição.

 

Você entendeu assim também?

 

Inicialmente eu entendi que era pra fazer a soma dos índices, mas achei meio?????? aí depois entendi exatamente dessa forma que você falou.

Fiz da seguinte forma:

int elemento = 0;

	for (int i = 0; i < T; ++i)
	{
		if (i==T-1)
		{
			elemento = i+vetor[0];
			adicao+=elemento;
		} else {
			adicao+=(i+vetor[i+1]);
		}
	}

	printf("\nSoma: %d\n", adicao);

 

Link para o comentário
Compartilhar em outros sites

Então, entende de outro jeito. Vou tentar te fazer me entender. Suponha que o vetor é um seguimento de copos com água então os elementos são copos e o conteúdo é água.

 

daí eu digo...

18 horas atrás, natesp disse:

e. Soma do índice de cada elemento ao conteúdo da próxima posição...

Eu entendo que o índice de cada elemento é uma quantidade de água que devemos somar ao próximo copo.

 

18 horas atrás, natesp disse:

f. Repetição do item b;

Depois a lista pede  que repita o ‘item’ b, que é a impressão do vetor para ver o resultado.

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

26 minutos atrás, mauro_b disse:

Então, entende de outro jeito. Vou tentar te fazer me entender. Suponha que o vetor é um seguimento de copos com água então os elementos são copos e o conteúdo é água.

 

daí eu digo...

Eu entendo que o índice de cada elemento é uma quantidade de água que devemos somar ao próximo copo.

 

Depois a lista pede  que repita o ‘item’ b, que é a impressão do vetor para ver o resultado.

AHHHHH, compreendi. Agora ficou assim:

for (int i = 0; i < T; ++i)
	{
		if (i==T-1)
		{
			adicao[i] = vetor[0]+i;
		} else {
			adicao[i] = vetor[i+1]+i;
		}
	}
	printf("\n");
	for (int i = 0; i < T; ++i)
	{
		printf("%d ", adicao[i]);
	}
Citação

No caso do exemplo:

1 1 2 3 4

após fazer a letra c), fica:

4 1 1 2 3

Exibe:

1 2 4 6 8

E agora?

Link para o comentário
Compartilhar em outros sites

2 minutos atrás, mauro_b disse:

Só discordo do vetor adicao. Na ilustração do problema com copos e água, o vetor adicao é igual a novos copos. Use os copos e conteúdos que já existem, aproposito, exibi-los alterados no item f é a razão de existir um item f. 

Certo, muitíssimo obrigado.

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!