Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Gustavo Mgnon

[Resolvido] Algoritimo em C

Recommended Posts

Nao estou conseguindo fazer este algorítimo em C, alguem poderia dar uma ajuda?

 

Faça um programa em “C” que leia e armazene num vetor X[20] valores inteiros quaisquer.

Num vetor Y[20] armazene os seguintes valores: nas posições ímpares, o valor correspondente a mesma posição no vetor X dividido por 2; nas posições pares, o valor correspondente a mesma posição no vetor X, mas multiplicado por 3.

Mostre os 2 vetores.

(Use uma função para realizar divisão e outra para a multiplicação.)

 

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

#include <conio.h>
#include <stdio.h>
#include <math.h>

int main ()

{
 int x[20],cont,cont2;
 cont2=0;
 for(cont=0;cont<20;cont++)
  {
						   
   printf ("Informe inteiro ");
   scanf ("%d", &x[cont]);

E eu nao sei como desenvolver o resto...

Compartilhar este post


Link para o post
Compartilhar em outros sites
nas posições ímpares, o valor correspondente a mesma posição no vetor X dividido por 2; nas posições pares, o valor correspondente a mesma posição no vetor X, mas multiplicado por 3.

 

Você não acha que precisa de um if?

Compartilhar este post


Link para o post
Compartilhar em outros sites

#include <conio.h>
#include <stdio.h>
#include <math.h>

int main ()

{
 int x[20],cont,y[20];

 for(cont=0;cont<20;cont++)
  {
						   
   printf ("Informe valor para posicao [%d] vetor " ,cont);
   scanf ("%d", &x[cont]);
   if ( cont %2 ==0)
	 {
	  y[cont] = x[cont];
	  y[cont] = y[cont] *2;
	  }
	  else
	 
	  {
	   y[cont] = x[cont];
	   y[cont] = y[cont] /2;
	  } 
	 
  }	 
 for (cont=0; cont<20; cont++)
  {
	 printf("vetor X posicao[%d]-  %d  " ,cont ,x[cont]);
	 printf ("\n");
  }
  getch();
  printf ("\n"); 
  for (cont=0; cont<20;cont++)
  {
	 printf (" Vetor Y %d [%d] ", y[cont],cont);
	 printf ("\n");
  }	   
  getch();
}

Só nao sei como fazer duas funçoes, uma para a multiplicaçao e outra para a divisão.

 

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Dê uma olhada no if e veja o código repetido que não depende de condicional....

 

Você não está usando nenhuma função do math.h.

 

Só nao sei como fazer duas funçoes, uma para a multiplicaçao e outra para a divisão.

 

Se já mostraram como fazer funções é só seguir o modelo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

#include <conio.h>
#include <stdio.h>
#include <math.h>
#include <stdlib.h>

//=======prototipação===============//
void divisao(int x[20], int y[20], int cont);
void multiplicacao(int x[20], int y[20], int cont);


//======Programa Principal=========//
int main ()
{
	int x[20],y[20],cont;
  

	for(cont=0;cont<20;cont++)
	{
		printf ("Informe valor para posicao [%d] vetor " ,cont);
		scanf ("%d", &x[cont]);
   
		if (cont %2 == 0)
	   {
			divisao();
	   }
	   else
	   {
		   
			multiplicacao();
	   } 
	 
	 }	 
 
	 for (cont=0; cont<20; cont++)
	 {
		  printf("vetor X posicao[%d]:  %d  " ,cont ,x[cont]);
		  printf ("\n");
	 }
  getch();
  printf ("\n"); 
  for (cont=0; cont<20;cont++)
  {
	 printf (" Vetor Y Posicao [%d]: %d  ",cont ,y[cont]);
	 printf ("\n");
  }		
  getch();
} 

//==========Funções==============//
void divisao(int x[20], int y[20], int cont)
{

	 y[cont] = x[cont];
	 x[cont] = x[cont]/2;	
}
//=====================================
void multiplicacao(int x[20], int y[20], int cont)
{
	 int x[20];
	 int y[20];
	 int cont;
	 
	 y[cont] = x[cont];
	 x[cont] = x[cont]*2;	
}
//=======================================

Ta dando erro na prototipação, alguma idéia?

 

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

De novo: as mensagens do compilador são explicativas na maioria das vezes. Isso significa que normalmente ele aponta a linha e diz o que está esperando encontrar.

 

isis@linux-gy11:~/Imasters> gcc -Wall -Wextra prot.c

prot.c: In function ‘main’:

prot.c:22: error: too few arguments to function ‘divisao’

prot.c:27: error: too few arguments to function ‘multiplicacao’

prot.c:45: warning: control reaches end of non-void function

prot.c: In function ‘multiplicacao’:

prot.c:58: error: ‘x’ redeclared as different kind of symbol

prot.c:56: error: previous definition of ‘x’ was here

prot.c:59: error: ‘y’ redeclared as different kind of symbol

prot.c:56: error: previous definition of ‘y’ was here

prot.c:60: error: ‘cont’ redeclared as different kind of symbol

prot.c:56: error: previous definition of ‘cont’ was here

 

 

É só prestar atenção no código que você percebe.

Compartilhar este post


Link para o post
Compartilhar em outros sites

reveja como você cria as funções e como você ta fazendo chamada a elas.

 

[]s

Compartilhar este post


Link para o post
Compartilhar em outros sites

#include <conio.h>
#include <stdio.h>
#include <math.h>


//=======prototipação===============//
int divisao(int numero); 
int multiplicacao(int numero);


//======Programa Principal=========//
int main ()
{
	int x[20],y[20],cont,numero;
  

	for(cont=0;cont<20;cont++)
	{
		printf ("Informe valor para posicao [%d] vetor " ,cont);
		scanf ("%d", &x[cont]);
   
		if (cont %2 == 0)		
	   {
		  numero=x[cont];
		  y[cont]= multiplicacao(numero);
		
		  
	   }
	   else
	   {
		   numero=x[cont];
		   y[cont]= divisao(numero);
			
	   } 
	 
	 }	 
 
	 for (cont=0; cont<20; cont++)
	 {
		  printf("vetor X posicao[%d]:  %d  " ,cont ,x[cont]);
		  printf ("\n");
	 }
	  printf ("\n Digite enter para ver os valores do vetor Y" );
	  getch ();
  
  for (cont=0; cont<20;cont++)
  {
	 printf (" Vetor Y Posicao [%d]: %d  ",cont ,y[cont]);
	 printf ("\n");
  }		
  getch();
} 

//==========Funções==============//
int divisao(int numero)
{
		 
	 numero=numero /2;  
	
}

//=====================================
int multiplicacao(int numero ) //(int x[20], int y[20], int cont)
{
	 
	 
	 numero=numero *2;
}
//=======================================

Consegui resolver Não mandando o vetor inteiro pra dentro da função.

 

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Resolveu nada.

 

Num vetor Y[20] armazene os seguintes valores: nas posições ímpares, o valor correspondente a mesma posição no vetor X dividido por 2; nas posições pares, o valor correspondente a mesma posição no vetor X, mas multiplicado por 3.

 

Você não está armazenando o resultado no array.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.