Guest --Evaldo -- Postado Junho 27, 2008 Denunciar Share Postado Junho 27, 2008 Assumindo que p contenha valores válidos e 'C' é o próprio valor que quero comparar, gostaria de saber comofaço para copiar esse valor p/ p->tipo_mov e como compará-los, já que pelo seguinte processo não consigoobter êxito. Alguém poderia solucionar isso?Segue o código:#include <stdio.h>#include <stdlib.h>#include <string.h>struct tipo{ char nome[40], tipo_mov[1], data[10]; int numero, valor, depos; struct tipo *esq; struct tipo *dir;};void main(void){ struct tipo *p; strcpy(p->tipo_mov, 'C'); if(strcmp(p->tipo_mov, 'C')) p->valor+=10; else p->valor-=10; printf("Tipo: %s\nValor %d\n", p->tipo_mov, p->valor);} Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Durub Postado Junho 28, 2008 Denunciar Share Postado Junho 28, 2008 Antes de tudo, não utilize void no main. Utilize int.tipo::tipo_mov só irá conter um caractere, então você não precisa especificar isso. Utilize somente char tipo_mov.Então, como só irá conter um caractere, não precisará das funções strcpy e strcmp. Retire o header "string.h".Também não há necessidade da "stdlib.h", retire-a.A struct está sendo declarada erroneamente. Você precisa de um typedef com o nome depois da estrutura dela.Outra coisa é que você estava esquecendo de inicializar a variável p.valor.Uma última consideração:struct tipo *esq; struct tipo *dir; Aqui você está colocando a própria struct na struct? Não entendi isso. O código, arrumado: (Acrescentei comentários e uma estilização minha) #include <stdio.h> // Define a struct typedef struct { char nome[40], tipo_mov, data[10]; int numero, valor, depos; } tipo; int main(void) { // Declara as variáveis tipo p; // Inicializa as variáveis p.valor = 0; p.tipo_mov = 'C'; // Verifica qual é o valor de p.tipo_mov, caso for igual à C, incrementa o p.valor por 10, do contrário decrementa if(p.tipo_mov == 'C') p.valor += 10; else p.valor -= 10; // Imprime no stdin os "resultados" printf("Tipo: %c\nValor: %d\n", p.tipo_mov, p.valor); return 0; }Abraços Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Guest --Evaldo --
Assumindo que p contenha valores válidos e 'C' é o próprio valor que quero comparar, gostaria de saber como
faço para copiar esse valor p/ p->tipo_mov e como compará-los, já que pelo seguinte processo não consigo
obter êxito. Alguém poderia solucionar isso?
Segue o código:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct tipo{
char nome[40], tipo_mov[1], data[10];
int numero, valor, depos;
struct tipo *esq;
struct tipo *dir;
};
void main(void){
struct tipo *p;
strcpy(p->tipo_mov, 'C');
if(strcmp(p->tipo_mov, 'C'))
p->valor+=10;
else
p->valor-=10;
printf("Tipo: %s\nValor %d\n", p->tipo_mov, p->valor);
}
Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.