Ir ao conteúdo
  • Cadastre-se

Não sei qual é o problema. Compilação normal.


Diego Aquino
Ir à solução Resolvido por FelipePetropolis,

Posts recomendados

 

int main(){

 

int valor, *vetor, outro, numero, vez = -1;

char opcao = 'k';

 

while(opcao!='g'){

   printf("a. Insercao de um novo elemento;\n");

   printf("b. Remocao de determinado valor: neste caso, todas as ocorrencias do numero devem ser removidas do vetor;\n");

   printf("c. Alteracao de um valor por outro: assim como na remocao, todas as ocorrencias devem ser alteradas;\n");

   printf("d. Busca de determinado elemento: neste caso, retornar a posicao da primeira ocorrencia, caso o elemento seja encontrado; se nao, retornar o valor -1;\n");

   printf("e. Exibir os numeros pares;\n");

   printf("f. Exibir os numeros impares;\n");

   printf("g. Sair do sistema: antes de concluir a execucao da aplicacao, exibir os elementos do vetor.\n");

   printf("\n\n\n\n");

   opcao = getch();

   switch(opcao){

      case 'a':

         printf("Digite um numero > 0: \n");

         scanf("%d", &valor);

         vetor = inserir_elemento(vetor, valor);

      break;

      case 'b':

         if(contador==0){

         printf("Nao é possivel remover, porque o vetor nao possui nenhum valor.\n");

         }else{

            printf("Digite o valor a ser eliminado: \n");

            scanf("%d", &valor);

            vetor = elimina_valor(valor, vetor);

         }

       break;

       case 'c':

            printf("Primeiro o valor que voce quer alterar, depois o valor que entrara no lugar:\n");

scanf("%d%d", &valor, &outro);

vetor = altera_valor(valor, vetor, outro);

break;

case 'd':

printf("Digite o numero a ser pesquisado no vetor: \n");

scanf("%d", &numero);

busca_elemento(vetor, numero);

break;

case 'e':

exibir_pares(vetor);

break;

case 'f':

exibir_impares(vetor);

break;

case 'g':

exibir_elementos(vetor);

break;

default:

printf("Opcao invalida\n");

break;

}

}

system("pause");

return 0;

}

#include <stdio.h>

#include <stdlib.h>

int contador=0;

int *inserir_elemento(int*vetor, int valor){

int i;

if(contador>0){

for(i=0;i<contador;i++){

if(vetor==valor){

    printf("Esse valor nao pode ser inserido, porque ele é repetido.\n\n\n\n");

return (int*)vetor;

}

}

}

 

vetor[contador] = valor;

contador++;

return (int*)vetor;

}

int *elimina_valor(int valor, int*vetor){

int i;

for(i=0;i<contador;i++){

if(vetor==valor && i<contador-1){

vetor = 0;

vetor = vetor[i+1];

contador--;

}else{

vetor = 0;

contador--;

}

}

return (int*)vetor;

}

int *altera_valor(int valor, int*vetor, int outro){

int i;

for(i=0;i<contador;i++){

if(vetor==valor){

vetor = outro;

}

}

return (int*)vetor;

}

int busca_elemento(int*vetor, int numero){

int i;

for(i=0;i<contador;i++){

if(vetor==numero){

printf("------------ O numero %d esta no vetor e sua posicao é %d ---------\n\n\n\n", numero, i+1);

return 0;

}

}

printf("-----------  Nao ha esse numero no vetor ------------\n\n\n\n");

return -1;

}

void exibir_pares(int*vetor){

int i;

for(i=0;i<contador;i++){

if(vetor%2==0){

printf("- %d - ");

}

}

printf("\n\n\n\n\n");

}

void exibir_impares(int*vetor){

int i;

for(i=0;i<contador;i++){

if(vetor%2==1){

printf("- %d - ");

}

}

printf("\n\n\n\n\n");

}

void exibir_elementos(int*vetor){

int i, j, aux;

for(i=0;i<contador;i++){

for(j=i+1;j<10;j++){

if(vetor%2==1 && vetor[j]%2==0){

aux = vetor;

vetor = vetor[j];

vetor[j] = aux;

}

}

}

for(i=0;i<contador;i++){

printf("- %d -  ", vetor);

}

}

 

Link para o comentário
Compartilhar em outros sites

Esse é o código certo:

 

#include <stdio.h>

#include <stdlib.h>
 
int contador=0;
 
int *inserir_elemento(int*vetor, int valor){
int i;
if(contador>0){
 
for(i=0;i<contador;i++){
if(vetor==valor){
    printf("\n\n\n\n\n -------- Esse valor nao pode ser inserido, porque ele é repetido. -------\n\n\n\n");
return (int*)vetor;
}
}
}
 
vetor[contador] = valor;
contador++;
return (int*)vetor;
 
}
 
int *elimina_valor(int valor, int*vetor){
int i;
for(i=0;i<contador;i++){
if(vetor==valor && i<contador-1){
vetor = 0;
vetor = vetor[i+1];
contador--;
}else{
vetor = 0;
contador--;
}
}
return (int*)vetor;
}
 
int *altera_valor(int valor, int*vetor, int outro){
int i;
if(contador==0){
printf("\n\n\n\n\n ---------- Nao ha nenhum valor no vetor ------------\n\n\n\n\n");
}else{
for(i=0;i<contador;i++){
if(vetor==valor){
vetor = outro;
}
}
}
return (int*)vetor;
}
 
int busca_elemento(int*vetor, int numero){
int i;
for(i=0;i<contador;i++){
if(vetor==numero){
printf("------------ O numero %d esta no vetor e sua posicao é %d ---------\n\n\n\n", numero, i+1);
return 0;
}
}
printf("-----------  Nao ha esse numero no vetor ------------\n\n\n\n");
return -1;
}
 
void exibir_pares(int*vetor){
int i;
for(i=0;i<contador;i++){
if(vetor%2==0){
printf("- %d - ");
}
}
printf("\n\n\n\n\n");
}
 
void exibir_impares(int*vetor){
int i;
for(i=0;i<contador;i++){
if(vetor%2==1){
printf("- %d - ");
}
}
printf("\n\n\n\n\n");
}
 
void exibir_elementos(int*vetor){
int i, j, aux;
 
for(i=0;i<contador;i++){
for(j=i+1;j<contador;j++){
if(vetor%2==1 && vetor[j]%2==0){
aux = vetor;
vetor = vetor[j];
vetor[j] = aux;
}
}
}
for(i=0;i<contador;i++){
printf("- %d -  ", vetor);
}
}
 
int main(){
 
int valor, *vetor, outro, numero;
char opcao = 'k';
 
while(opcao!='g'){
 
printf("a. Insercao de um novo elemento;\n");
printf("b. Remocao de determinado valor: neste caso, todas as ocorrencias do numero devem ser removidas do vetor;         \n");
printf("c. Alteracao de um valor por outro: assim como na remocao, todas as ocorrencias devem ser alteradas;               \n");
printf("d. Busca de determinado elemento: neste caso, retornar a posicao da primeira ocorrencia, caso o elemento seja encontrado; se nao, retornar o valor -1;          \n");
printf("e. Exibir os numeros pares;          \n");
printf("f. Exibir os numeros impares;       \n");
printf("g. Sair do sistema: antes de concluir a execucao da aplicacao, exibir os elementos do vetor.       \n");
printf("\n\n\n\n");
 
opcao = getch();
 
switch(opcao){
 
case 'a':
printf("Digite um numero > 0: \n");
scanf("%d", &valor);
vetor = inserir_elemento(vetor, valor);
break;
 
case 'b':
if(contador==0){
printf("\n\n\n\n\n ---------- Nao é possivel remover, porque o vetor nao possui nenhum valor. ---------\n\n\n\n\n");
}else{
printf("Digite o valor a ser eliminado: \n");
scanf("%d", &valor);
vetor = elimina_valor(valor, vetor);
}
break;
 
case 'c':
if(contador==0){
printf("\n\n\n\n\n ---------- Nao é possivel remover, porque o vetor nao possui nenhum valor. ---------\n\n\n\n\n");
}else{
printf("Primeiro o valor a ser alterado, depois o numero que entrara:\n");
scanf("%d%d", &valor, &outro);
vetor = altera_valor(valor, vetor, outro);
}
break;
 
case 'd':
if(contador==0){
printf("\n\n\n\n\n ---------- Nao é possivel fazer a busca, porque o vetor nao possui nenhum valor. ---------\n\n\n\n\n");
}else{
printf("Digite o numero a ser pesquisado no vetor: \n");
scanf("%d", &numero);
busca_elemento(vetor, numero);
}
break;
 
case 'e':
if(contador==0){
printf("\n\n\n\n\n ---------- Nao é possivel exibir, porque o vetor nao possui nenhum valor. ---------\n\n\n\n\n");
}else{
exibir_pares(vetor);
}
break;
 
case 'f':
if(contador==0){
printf("\n\n\n\n\n ---------- Nao é possivel exibir, porque o vetor nao possui nenhum valor. ---------\n\n\n\n\n");
}else{
exibir_impares(vetor);
}
break;
case 'g':
if(contador==0){
printf("\n\n\n\n ----- Nao é possivel mostrar os elementos, porque o vetor esta vazio ------ \n\n\n\n");
}else{
exibir_elementos(vetor);
}
 
break;
default:
printf("Opcao invalida\n");
break;
}
}
 
 
system("pause");
return 0;
}
Link para o comentário
Compartilhar em outros sites

  • Solução

Olá!

 

 

Olha sou iniciante em C, mas dei uma olhada rápida, e parece que o problema parece estar relacionado aos seguintes alertas apresentados a seguir:

 

 

|69|warning: format ‘%d’ expects a matching ‘int’ argument

 

|79|warning: format ‘%d’ expects a matching ‘int’ argument

 

 

- você esqueceu de colocar os argumentos para os printf():

printf("- %d - ");

acredito que o correto seria :

printf ( "- %d - ", vetor [ i ] );

- uso o sistema operacional Linux Ubuntu 14.04, então tive que substituir a função gech(); por getchar(); e não tive nenhum problema, por hora.

 

 

- funções do tipo system(); como - system("pause");  fazem chamadas a componentes do sistema, e que dependendo do sistema, pode vir a causar problemas no seu programa durante a execução, por isso só use tais chamadas se for necessario e se tiver plena certeza de seu funcionamento.

se voce usou system("pause"); para poder visualizar os resultados evitando que a tela se feche, você pode substitui-la por getchar();

 

 

- Tente especificar os problemas que o programa está apresentando, pois, os testes simples que realizei o programa parece estar funcionando, com execeção das opções " b " e " c ", se der tempo tento postar algo ainda hoje . . .

 

 

Ubuntu 14.04  GCC 4.8  CodeBlocks 13.12

 

 

Espero Ter Ajudado ! ! !

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

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