Ir ao conteúdo
  • Cadastre-se

Linguagem C.


Novata

Posts recomendados

O que tem de errado nesse algoritmo que não compila?

Obs:

#include <stdio.h>#include <conio.h>#include <string.h>#include <stdlib.h>int i=0, j=0;char tecla;struct cadastro_cliente  {      int cod;      char nome [40];      char rua [30];      int numero;      int cpf;      char bairro [30];      char cidade [30];      int codigocar;  };   struct cadastro_cliente Cliente[50];    struct cadastro_carro  {      int codcar;      int valor [15];      char marca [15];      char placa [15];      int status;  };    int cad_cliente (void){   clrscr();   printf("Cadastro %d de 50\n", j);   if (j<50)      {        printf("Digite o codigo do Cliente: ");        scanf("%d", &Cliente[j].cod);                        printf("Digite o nome do Cliente: ");        gets(Cliente[j].nome);        printf("Digite o CPF do Cliente: ");        scanf("%d", &Cliente[j].cpf);                        printf("Digite o nome da Rua: ");                gets(Cliente[j].rua);                printf("Digite o numero da casa: ");        scanf("%d", &Cliente[j].numero);        fflush(stdin);        printf("Digite o nome do Bairro: ");        gets(Cliente[j].bairro);                        printf("Digite o nome da Cidade: ");        gets(Cliente[j].cidade);        j++;      }   return(0);         int cad_carro (void){  clrscr();  printf("Cadastro de carro %d de 50\n", i);  if(i<50)    {         printf("Digite o valor do carro: ");     gets(Carro[i].valor);         printf("Digite a marca do carro: ");     gets(Carro[i].marca);         printf("Digite a placa do carro: ");     gets(Carro[i].placa);     i++;    }  return(0);}
Link para o comentário
Compartilhar em outros sites

Vários pequenos erros.

 

faltou fechar a função:

int cad_cliente (void)

faltou declarar o vetor Carro:

struct cadastro_carro Carro[50];

O resto ta + ou - certo. A dica que fica é não usar variáveis globais.

tente usar as variáveis locais dentro da main e as repassar como parâmetro.

Variáveis globais impedem que você escreva funções genéricas,

por exemplo sua função de cadastro de cliente não permite que você adicione clientes em um vetor diferente do vetor Cliente[].

Link para o comentário
Compartilhar em outros sites

  • 3 semanas depois...

 

O que tem de errado nesse algoritmo que não compila?

Obs:

#include <stdio.h>#include <conio.h>#include <string.h>#include <stdlib.h>int i=0, j=0;char tecla;struct cadastro_cliente  {      int cod;      char nome [40];      char rua [30];      int numero;      int cpf;      char bairro [30];      char cidade [30];      int codigocar;  };   struct cadastro_cliente Cliente[50];    struct cadastro_carro  {      int codcar;      int valor [15];      char marca [15];      char placa [15];      int status;  };    int cad_cliente (void){   clrscr();   printf("Cadastro %d de 50\n", j);   if (j<50)      {        printf("Digite o codigo do Cliente: ");        scanf("%d", &Cliente[j].cod);                        printf("Digite o nome do Cliente: ");        gets(Cliente[j].nome);        printf("Digite o CPF do Cliente: ");        scanf("%d", &Cliente[j].cpf);                        printf("Digite o nome da Rua: ");                gets(Cliente[j].rua);                printf("Digite o numero da casa: ");        scanf("%d", &Cliente[j].numero);        fflush(stdin);        printf("Digite o nome do Bairro: ");        gets(Cliente[j].bairro);                        printf("Digite o nome da Cidade: ");        gets(Cliente[j].cidade);        j++;      }   return(0);         int cad_carro (void){  clrscr();  printf("Cadastro de carro %d de 50\n", i);  if(i<50)    {         printf("Digite o valor do carro: ");     gets(Carro[i].valor);         printf("Digite a marca do carro: ");     gets(Carro[i].marca);         printf("Digite a placa do carro: ");     gets(Carro[i].placa);     i++;    }  return(0);}

Existe 2 falhas  de codigo; esta faltando os prototipos das funções, e  esta faltando  main para instânciar  as classe (funçoes).

 
Link para o comentário
Compartilhar em outros sites

Sem a main não compila. Além disso, os dois if na função de cadastro do cliente e do carro, não fazem loop, só um valor será lido. você deve substituir os if por comandos for ou while. Fora isso está faltando fechar chaves depois do return de cad_clientes, Fora tudo isso o tipo da variável valor deve ser char se você quer ler o valor usando gets, ou apenas um tipo float no atributo valor e um scanf resolvem o problema.

 

Basicamente é isso. Escreva a main, vai implementando as funções e testando uma por uma. Copie os erros do compilador e pesquise no google. 

Se possível, antes de implementar as funções tenha em mente qual é a entrada, qual a saída e o que deve ser processado.

Confira sempre os tipos, evite variáveis globais como os contadores i e j.

Link para o comentário
Compartilhar em outros sites

  • 3 semanas depois...

Não sou experiente em programação, voltei a estudar agora e aqui eu uso o DEV C=++

nomeei o arquivo com CARRO apenas para salvá-lo.

copiei e colei o algoritmo no programa e ele acusou o seguinte

 

espero que tenha ajudado.

o erro da linha 36 é porque não foi adicionado a biblioteca que contem o comando clrscr()

esse comando pertence a biblioteca conio2.h quando compilado no DEV C++

Para usar essa biblioteca, após a instalação da DevPak vá até: Ferramentas > Opções do Compilador > Adicone este comando à linha de comando do linker:

-lconio

 

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para 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...