faça um programa em c que leia um conjunto de valores e armazene os valores positivos em uma pilha e armazene os valores negativos em outra pilha. mostre a média dos valores positivos, e a soma dos negativos. Alguem pode me ajudar estou usando dev-c++.
no minimo tens que ter uma ideia
o que vc ja fez??
Se for assim, põe ja todos exercicios da faculdade aqui no guj
.
tens que mostrar o teu raciocinio o resto nos te ajudamos, mas queres a papa toda feita.
Eu posso te ajudar dizendo para você não usar o DevCpp. O dev é uma IDE antiga (1996), com um compilador pré-histórico. Ele tem alguns bugs que podem esconder de você parte das mensagens de erro e te prejudicar.
A alternativa ao DevCpp é o Code::Blocks. Sua última versão foi compilada em 2008 (recente pros padrões do cpp), com o depurador funcionando e muito mais estável. O compilador que o DevCpp e o Code::Blocks usam é o mesmo, chamado MinGW. Entretanto, no CodeBlocks existe uma versão beeem mais nova do MinGW. Com mensagens de erro mais claras, por exemplo.
http://www.codeblocks.org
Outra ótima opção é utilizar o Visual Studio Express, da Microsoft. Acho que é a melhor IDE hoje em dia. O compilador da MS também é muito bom. Você pode baixar o Visual aqui:
http://www.microsoft.com/express/Downloads/#2008-Visual-CPP
Quanto ao seu problema específico. Diz aí o que você já fez. Explique se seu professor deixa ou não você usar classes como o Vector. Ele provavelmente já te passou uma classe de pilha pronta (ou métodos) então, ponha aí o que ele já passou. Nós não faremos a lição de casa para você, mas podemos te ajudar a encontrar o caminho das pedras.
[code]#include <stdlib.h>
struct fila
{
int info;
struct fila *prox;
};
typedef struct fila Fila;
void init(Fila **f)
{
*f=NULL;
}
char isEmpty(Fila *f)
{
return f==NULL;
}
int top(Fila *f) // Topo da Fila
{
if (!isEmpty(f))
return f->info;
return -1;
}
void push(Fila **f, int x) // Insere na Fila
{
Fila *aux = (Fila *)malloc (sizeof(Fila));
aux->info=x;
aux->prox=*f;
*f = aux;
}
void pop(Fila **f, int *x) // Retira da Fila
{
Fila *aux;
if (!isEmpty(*f))
{
aux=*f;
*x=(*f)->info;
*f = (*f)->prox;
free(aux);
}
else *x = -1;
}
#include
#include
#include <tadPilha.h>
int main(void)
{
Pilha *p;
int num = 9;
init (&p);
push(&p,num);
printf("Ultimo: %d\n",top(p));
num = 10;
push(&p, num);
printf("Ultimo: %d\n",top(p));
num = 11;
push(&p,num);
printf("Ultimo: %d\n\n\n",top(p));
pop(&p, &num);
while (num != -1)
{
printf("Numero: %d\n\n",num);
pop(&p,&num);
}
system("PAUSE");
}
[/code]
Isso é um exercício q tenho aki, v se ajuda…
Po pessoal… fazendo de bandeja exercício de faculdade!
Se soubesse disso tinha colocado os meus aki pra vcs me darem digratis! :twisted:
Agora, sério, deixa o cara mostrar q pelo menos tentou!
É mto melhor perguntar como declarar uma variável em cpp do q pedir a resposta de mãos beijadas!
já consegui muito obrigaduuuuuuuuu
#include<conio.h>
#include<stdlib.h>
#include<stdio.h>
#define n 4
struct pilha {
int topo;
int valor[n];
};
void inserir(struct pilha *p , int v)
{
if ( p->topo==n)
printf(“pilha cheia”);
else
{
p->valor[p->topo]=v;
p->topo++;
}
}
void excluir (struct pilha *p)
{
if (p->topo==0)
printf(“pilha vazia”);
else
{
printf("%d excluido\n", p->valor[p->topo-1]);
p->topo–;
}
}
void mostrar_pilha ( struct pilha*p)
{
int i;
if (p->topo==0)
printf("pilha vazia");
else
{
for (i=p->topo-1;i>=0;i--)
printf("%d\n",p->valor [i]);
}
getch();
}
void pesquiza ( struct pilha*p,int v)
{
int i , x=0;
if(p->topo==0)
printf("pilha vazia");
else
{
for (i=p->topo-1;i>=0;i--)
{
if (p->valor[i]==v)
{
printf("encontrado na posicao %d",i);
x=1;
}
}
}
if(x==0)
printf("valor nao encontrado");
}
void soma(struct pilha *p)
{
int i ,somapilha=0;
if(p->topo==0){
printf("pilha vazia");
}
else
{
for (i=p->topo-1;i>=0;i--)
{
somapilha=somapilha+p->valor[i];
}
printf("a soma %d ",somapilha);
}
}
main()
{
struct pilha p ;
p.topo=0;
int op,v;
do{
system("cls");
printf("\n 1-inserir\n 2-excluir\n 3-mostrar \n 4 pesquiza \n 5 soma\n 6-sair \n");
printf("digite sua opcao:");
scanf("%d",&op);
if(op==1)
{
printf("digite o valor: ");
scanf("%d",&v);
if (v%2==0)
{
inserir(&p,v);
}
}
else if (op==2)excluir(&p);
else if(op==3)mostrar_pilha(&p);
else if(op==4)
{
printf("digite o valor para pesquizar");
scanf("%d",&v);
pesquiza(&p,v);
}
else if(op==5)soma(&p);
else
printf ("opcao invalida");
}
while (op!=6);
}