Ir ao conteúdo
  • Cadastre-se

1freakday

Membro Pleno
  • Posts

    670
  • Cadastrado em

  • Última visita

Tudo que 1freakday postou

  1. Na logica, você tem o nome, peso e idade no mesmo indice i. Então para acessar o peso do boi[0], basta usar o indice 0 em peso: peso[0] Nesse loop //i = NO, for(i = NO; j<=i; j++) //<-- o problema deve estar na primeira lógica 'i = NO' { printf("%s",NOME[j]); } Zere a variável j , já que ela foi declarada sem valor.
  2. @Henrique Negri Tenta verificar se você baixou corretamente o tipo x64 para x64, ou x86 para x86.
  3. Faltou ); em: strcpy(listaCarro[CELTA].esp, "Com AR"
  4. @Gian Dias Campos Ao usar %c no scanf e índice no vetor de char(string), você não permitiu a entrada de uma string: printf("Digite o nome do boi numero %d:\n",i); scanf(" %c",&NOME); //<--- use %s em vez de %c Para usar vários dados em uma variavel, use matrizes multidimensionais, como: char nome[100][50]; //100 nomes com 50 char(letras) scanf("%s",nome[0]); //entrada para o indice 0 em nome, até 50 char P.S: pode usar com int, e outros tipos.
  5. @Jv Rotta A questão aqui são ponteiros, mas como você quer passar um array para outro, você usa: for(c=0;c<15;c++){ cadastro(x); }
  6. @Douglas Carvalho de brito Exatamente, system("pause") ele brevemente pausa o programa até a entrada receber alguma tecla. E system("cls"); // windows system("clear"); // linux servem para "limpar" a tela. Observe, que quando você quer ir de uma função para outra, você precisa chama-la. Para chamar uma função o sistema precisa ter um protótipo que ira "dizer" ao compilador onde está o escopo da função. Enfim, o programa é fechado em if(idade>=18) { printf("\nMaior de idade\n"); printf("\n Você foi aceito em nosso sistema\n"); } por que tudo que você colocou no escopo do if foram 2 printfs, portanto, sempre chame a função que deseja usar, se não o programa automaticamente sai do escopo do if e continua as instruções restantes da função, que no caso é: system("pause"); } Para chamar a função temos dois meios, sendo assim: //metodo 1, usar protótipo, dizendo a main //que a funcaoA existe. void funcaoA(); int main(){ int x=1, y=2; if(x < y){ funcaoA(); } } void funcaoA(){ ... } ou assim: //metodo 2, sem protótipos void funcaoA(){ ... } int main(){ int x=1, y=2; if(x < y){ funcaoA(); } }
  7. @Douglas Carvalho de brito Para não dar esses erros de 'was not declared in this scope', ou seja, "não foi declarado no escopo", você precisa declarar as structs antes de usa-las, assim como os protótipos das funções. Quando digo declarar as structs, quer dizer que se você for usar uma struct, antes ela precisa existir, depois ela precisa ser declarada, e então esses erros vão sair na hora. Segue um exemplo claro: #include ... //Até aqui em cima, não há struct Player, portanto não posso usa-la. // se usar, vai dar erro de 'was not declared in this scope' struct Player{ int points; int x, y; }; //a partir daqui a struct Player existe e pode ser usada em baixo. //Aqui em cima, joao não pode ser usado Player joao; //Aqui joao pode ser acessado normalmente joao.x = 0; joao.y = 0; adicionado 7 minutos depois @Douglas Carvalho de brito No outro pastebin que você mandou, a função void cadastraPessoa( struct Aluguel a ) { // a.pessoa não estava completa e está aberta.
  8. Não utilize índice + 1, pois, se for verificar ele resultara em 7, porém o índice só pode ir de 0 a 5, ou seja, só use ';i < indice;'
  9. 1freakday

    C++ Ler arquivo TXT em C

    @david nilo Para encontrar determinado produto, seja, por nome, tipo, etc..., use fscanf, porém você precisa organiza-los quando for salvar, de forma que seja possível usar fscanf. Portanto, na hora da leitura, basta usar fscanf e armazenar os dados em cada variável, de acordo com a estrutura de salvamento, ai utilize strncmp para comparar as variáveis, e assim você já terá as outras informações, obtidas pelo fscanf.
  10. @Douglas Carvalho de brito Maneiro, desejo sucesso colega. Dúvidas aqui sempre serão bem vindas e respondidas. Uma dica para seu código ser bem apreciado, é tentar esclarecer as etapas e instruções com comentários o mínimo possível, pelo menos em palavras. Ou seja, cada etapa, seja questionários, etc..., coloque um comentário indicando o inicio dela. Mas eu entendo, você está começando agora, e quer saber cada processo. O erro citado, tem a ver com o símbolo { }, poís no final da função main, ficou faltando fechar com }
  11. @Lucas Da Silva Rezende Na forma como você está fazendo, você apenas descobre os zeros e divide, não está invertendo. Você pode usar o mesmo que notação ou pares. Usando % você pode sempre obter o resto, ou seja, o ultimo numero.Por exemplo: Vamos supor que você receba os dígitos 213 na variável num. Usando %, podemos pegar 3, 1 e 2 na sequência, assim: 1 - Usamos % em 213 por 10, ficando: 21,3 //213 = 21,3 = 3 resto = (num % 10); 2 - Assim recebemos 3, e acrescentamos a uma variável de retorno ( que será o nosso resultado final ). //puxa a variavel para o final resultado *= 10; //se o resto for maior que zero, ascrescenta a variavel //se for zero, continua igual resultado = (resto > 0 ? (x+y):x); 3 - Agora num precisa ser dividido por 10, para eliminar o ultimo valor e, para ser verificado pelo while. num /= 10; 4 - Sobra 21, e dividindo por 10, fica: 2,1 Apenas repita o 2 e o 3 caso no while. ..... Segue o código: int intlen(int num){ int x = 0, y = 0; //se num for 0, não tem mais o que fazer... while(num > 0){ y = num % 10; num /= 10; //multiplica por 10, para adicionar 0 x = (y > 0 ? ((x*10)+y):(x*10)); } return x; }
  12. @Relry PeSan Antes de chamar o call, basta posicionar os argumentos, e usar call PosCursor;
  13. @Gabriel_Dead O que você não conseguiu fazer? As etapas são claras: 1 - Receber a,b e c. 2 - if( a > (b + c)) não formam triângulo 3 - if(a2 = (b2 + c2)) triângulo retângulo 4 - if(a2 > (b2 + c2)) triângulo obtusângulo 5 - if(a2 < (b2 + c2)) triângulo acutângulo
  14. @Aldemar Mendes Pelos erros que encontrei, foi mais falta de atenção, então marquei os erros abaixo: // Menu Principal ! #include <stdio.h> #include <stdlib.h> #include "estrutura.h" int main(){ Fila fi[MAX]; // <-------------- onde está definido MAX??? #define MAX X int i,op; do{ system("cls"); printf("---MENU---\n"); printf(" 1 - CRIA FILA\n"); printf(" 2 - LIBERA FILA \n"); printf(" 3 - SAIR \n"); printf("\n ESCOLHA UMA OPCAO: "); scanf("%i", &op); fflush(stdin); switch(op){ case 1: // caso 1 opção de Cria Fila cria_Fila(&fp);//<------------------------ a função não está para receber argumentos break; case 2: // caso 2 opção de Libera Fila libera_Fila(&fp); break; } }while(op!=3); return 0; } // Estrutura Fila.c ! #include "estrutura.h" //fi = cria_Fila();//<--------------------- isso não deveria existir Fila* cria_Fila();//<---------------------- coloque acima de main, pois aqui não serve pra muita coisa Fila* cria_Fila(){//<--------------------------- não está recebendo argumentos, coloque: Fila *cria_fila(Fila *fi) Fila *fi (Fila*)malloc(sizeof(struct fila)); if(fi != NULL){ fi -> inicio = 0; fi -> finnal = 0; fi -> qtd = 0; } return fi; } libera_Fila(fi); //<----------------- isso aqui também é incoerente void libera_Fila(Fila* fi);//<----------------- o mesmo de cima void libera_Fila(Fila* fi){ free(fi); } // Estrutura.h #define MAX 100 /// estrutura.h struct aluno{ int matricula; char nome[30]; float n1,n2,n3; }; typedef struct fila Fila; struct fila{ int inicio, finnal, qtd; struct aluno dados[MAX]; }; Fila *fi;
  15. Na função verificar, você deixou alguns erros passarem, como a falta de int i; Também você está usando o 'str' errado, troque por '*str' e incremente com '*str++' ao lado de i++ Aqui: //retorno incoerente return (topo->prox == NULL); //verificação -> verdadeiro return 0;
  16. @Luciano Roberto Dos Santos Ao compilar você usou o linker -lpthread?
  17. @Paulo Sérgio Oliveira Coutinho Agora só falta fazer a função main para chamar a função recursiva... #include <stdio.h> int pot (int x, int n){ if (n==0) return 1; else return x*pot(x,n-1); } int main(){ //aqui chama a função printf("13 ^ 3 = %d\n", pot(13,3)); return 0; }
  18. Se você quer apenas uma letra, por que precisa usar o tamanho do vetor? Use apenas char letra; Quando você não inicializa uma variável, é possível que na hora da leitura, ela acabe mostrando o valor de outra variável, isso é chamado de buffer overflow... Tente evitar isso dando um valor inicial as variáveis. Lembrando que quando você coloca: char letra[1]; você só pode acessar: letra[0]; pois 1 é a quantidade de elementos e 0 é o inicial...
  19. @Vini_flores Poderia postar o seu código, mesmo que seja um rascunho, algo em que podemos lhe ajudar de acordo com as regras.
  20. int nascimento(int dia, int mes, int ano){ return (dia+mes*30+ano*365); } O int x não é necessário nesse caso.
  21. @Luis Felipe Miranda Tenta atualizar se compilador, em conjunto com gcc, etc, e verifica se continua com o problema. adicionado 2 minutos depois @Luis Felipe Miranda Outra solução, seria depois de salvar, carregar o arquivo e tentar remover o qual foi salvo, porém se você está fazendo tudo isso no windows, vai ser feito em vão. Tente remover os espaços, \n e \r. p.s: eu compilei no Code Blocks no Windows e apareceu o 0x0D, depois compilei no Bash do Ubuntu, e não apareceu.
  22. @heavydsoul não sei se isso são dúvidas ou exercícios, portanto, vou deixar um texto de faculdade aqui: http://wiki.icmc.usp.br/images/b/b1/Matrizes_esparsas_RAFR.pdf Boa leitura!
  23. #include <stdio.h> #include <stdlib.h> #include <locale.h> int main() { int lin,col,vet[3]; int mat[3][3]; int menor=0; int pos1=0, pos2=0; setlocale(LC_ALL,"portuguese"); for(lin=0; lin<=2; lin++){ for(col=0; col<=2; col++){ printf("Digite um número para linha [%d] e um para coluna [%d]: ", lin+1, col+1); scanf("%d", &mat[lin][col]); } printf("\n"); } printf("\n Matriz\n\n"); for(lin=0; lin<=2; lin++){ for(col=0; col<=2; col++){ printf("%d\t ", mat[lin][col]); } printf("\n\n"); } //depois de preenchido, pega o primeiro elemento... menor=mat[0][0]; for(lin=0; lin<=2; lin++){ for(col=0; col<=2; col++){ if(lin !=0 && col !=0){ if(mat[lin][col] < menor){ menor = mat[lin][col]; pos1=lin; pos2=col; } } } } printf("\n O número menor é: [%d]", menor); printf("\n\n A posição do menor número será: [%d][%d]", pos1+1,pos2+1); printf("\n\n"); system("pause"); return 0; }
  24. @Luis Felipe Miranda Qual editor de texto está usando para visualizar/editar o código ? Já que 0x0D tem a ver com o Carriage Return '\r', no printf ele volta indicador de escrita para o começo da tela. Quando você coloca 0x0A no Windows é alocado 0x0D pois tem a ver com a formatação padrão de CRLF(Carriage Return Line Feed), no linux é usado apenas 0x0A, por isso não aparece 0x0D para mim, verifique se você está usando \r ou \n
  25. @Gabriel T.I Não exatamente, você têm que fazer isso depois de preencher a matriz. Entre o 2 e o 3 for.

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

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!