Ir ao conteúdo

Posts recomendados

Postado
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.

Postado
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
Postado

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.

Postado

"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?

 

Postado
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);

 

Postado
17 horas atrás, natesp disse:

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

 

Se estou certo, a soma substitui o conteúdo do vetor.

vetor[i+1] += i;

 

Postado

@mauro_b como assim? isso eu não entendi.

O que fiz foi somar o índice 0 com o conteudo da próxima posição, o índice 1 com o conteúdo da próxima e assim foi.

Citação

no caso do exemplo:

1 1 2 3 4

faz o procedimento pedido na letra c) e fica:

4 1 1 2 3

Soma: 21

 

Postado

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
Postado
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?

Postado

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. 

  • Curtir 1
Postado
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.

Postado

De nada, se entendeu igual o resultado é esse.

for (int i = 0; i < T; ++i)
	{
		if (i==(T-1))
		{
			vetor[0]= vetor[0]+i;
		} else {
			vetor[i+1]= vetor[i+1]+i;
		}
	}
	printf("\n");
 

 

Valeu

  • Curtir 1

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...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!