filsoldier
(usa Fedora)
Enviado em 02/06/2010 - 13:47h
Olá meus caros ! desde já agradeço a atenção de todos vocês e me perdoem por estar incomodando, eu fiquei ate 4:35 da manha tentando e não deu certo.
Preciso colocar os dados de um vetor em uma pilha e ir alterando as posições de acordo com a leitura externa de arquivo.txt.
#include<stdlib.h>
#include<stdio.h>
#include<string.h>
#define max 25
int main()
{
FILE *fp;
int i,j,tam,bloco1[max],bloco2[max];
char modo[max][10],posicao[max][10];
fp = fopen("arquivo.txt", "r");
fscanf(fp,"%d",&tam);
printf("Tamanho definido pelo arquivo de origem:%d\n\n",tam);
/**********************************FUNÇÕES*************************************/
int pilha1[max]; // Vetor onde serão guardados os elementos
int tp1=tam; // Inteiro que diz o tamanho da pilha/ definido pelo arquivo entrada.txt
if(tam==0)//verifica se a pilha está vazia
printf("Pilha Vazia.:");
/********************pilha 2*******************/
int pilha2[max]; // Vetor onde serão guardados os elementos
int tp2=tam; // Inteiro que diz o tamanho da pilha/ definido pelo arquivo entrada.txt
if(tam==0)//verifica se a pilha está vazia
printf("Pilha Vazia.:");
/***inserindo dados da pilha e verificando se ha espaço*/
//pilha[tp++] = bloco1;
/*****Retira o elemento da pilha********************************/
//bloco1 = pilha[--tp];
/******************************************************************************/
//do
//{
for (i=1;i<tam;i++)
{
fscanf(fp,"%s %d %s %d", &modo[i], &bloco1[i], &posicao[i],&bloco2[i]);
if(strcmp("mover",modo[i])==0)//compara uma strings
{
printf("1 - funcao: \n\n\n");
printf("%d\n",pilha1[tp1++]);
pilha1[tp1++] = bloco2[i];
pilha2[tp2++] = bloco1[i];//Mudando as posiciões
printf("%d : %d(topo)\n\n********************************\n",pilha1[tp1++], pilha2[tp2++]);//imprimi pilha com pociões alterandas
//retirar e colocar para chamar a função.
}
if(strcmp("move",modo[i])==0)//compara uma strings
{
printf("2 - funcao: \n\n\n");//retirar e colocar para chamar a função.
pilha1[tp1++] = bloco2[i];
bloco1[i];//Mudando as posiciões
printf("%d : %d(topo)\n\n********************************\n",bloco2[i],bloco1[i]);//imprimi pilha com pociões alterandas
}
if((strcmp("empilhar",modo[i])==0)&&(strcmp("acima",posicao[i])==0))//compara duas strings empilhar e posicao
{
printf("3 - funcao: \n\n********************************\n");//retirar e colocar para chamar a função.
pilha1[tp1++] = bloco2[i];
bloco1[i];//Mudando as posiciões
printf("%d : %d(topo)\n\n********************************\n",bloco2[i],bloco1[i]);//imprimi pilha com pociões alterandas
}
if((strcmp("empilhar",modo[i])==0)&&(strcmp("topo",posicao[i])==0))//compara duas strings empilhar e posicao
{
printf("4 - funcao: \n\n********************************\n");//retirar e colocar para chamar a função.
}
}
// i++;
// }while(i>tam);
fclose(fp);
system("pause");
}