Ir ao conteúdo
  • Cadastre-se

Infante98

Membro Pleno
  • Posts

    24
  • Cadastrado em

  • Última visita

Tudo que Infante98 postou

  1. Infante98

    C Jogo em C V2

    Obrigado pela ajuda!! Também já consegui fazer o programa repetir caso o utilizador queira. Só falta mesmo a parte de gerar 4 números aleatórios que não se repitam entre si.
  2. Infante98

    C Jogo em C V2

    #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> #include <time.h> int main() { int vetor[4], i, tentativas = 20, senhaUsuario[4], j, correto = 0, errou = 0, num; int numero_certo_posicao_certa = 0; int numero_certo_posicao_errada = 0; int vetor1[4] = { 0 }; int senhaUsuario1[4] = { 0 }; char continuar = 's'; srand(time(NULL)); do { printf("\n Chave: "); // Apenas para Versão de Teste. for (i = 0; i < 4; i++) { vetor[i] = 1 + (rand() % 8); printf("%d ", vetor[i]); // Apenas para versão de Teste. } while (tentativas > 0) { printf("\n\n Insira uma Chave (Composta por 4 numeros com um espaco entre os digitos): "); for (i = 0; i < 4; i++) { scanf("%d", &senhaUsuario[i]); } for (i = 0; i < 4; i++) { if (vetor[i] == senhaUsuario[i]) { numero_certo_posicao_certa++; vetor1[i] = 1; senhaUsuario1[i] = 1; if (numero_certo_posicao_certa == 4) { printf("\n Parabens! voce Acertou na Chave! Tentativas usadas: %d \n", tentativas); tentativas = 0; } } } for (i = 0; i < 4; i++) { for (j = 0; j < 4; j++) { if (vetor[j] == senhaUsuario[i] && vetor1[j] == 0 && senhaUsuario1[i] == 0) { numero_certo_posicao_errada++; vetor1[j] = 1; senhaUsuario1[i] = 1; } } } for (i = 0; i < 4; i++) { vetor1[i] = 0; senhaUsuario1[i] = 0; } tentativas--; errou++; if (tentativas > 0) { printf("\n %d Numeros Certos na posicao Certa.", numero_certo_posicao_certa); printf("\n %d Numeros Certos na posicao Errada", numero_certo_posicao_errada); printf("\n Tentativas Restantes: ( %d )", tentativas); printf("\n---------------------------------------------------------------------------------------\n"); } numero_certo_posicao_certa = 0; numero_certo_posicao_errada = 0; } if (errou == 20) { printf("\n GAME OVER !!! (A Chave era: "); for (i = 0; i < 4; i++) { printf("%d ", vetor[i]); } printf("\n\n"); } printf("\n Pretende Jogar Novamente? [s/n]"); scanf(" %c", &continuar); printf("\n---------------------------------\n"); printf("\n---------------------------------\n"); } while (continuar == 's' || continuar == 'S'); printf("\n Acabou! \n"); system("pause"); } Boa noite, precisava de ajuda para corrigir 3 coisas neste jogo que fiz: 1 - Ao criar os 4 números aleatórios, fazer com que eles sejam obrigatoriamente diferentes uns dos outros. 2 - Fazer o programa dizer ao utilizador em quantas tentativas adivinhou o resultado correto. 3 - Perguntar ao utilizador se quer repetir o programa (utilizei um do while mas não está a funcionar) Desde já obrigado pela ajuda.
  3. Infante98

    C Jogo MasterMind em C

    Obrigado pela ajuda! Só uma questao: Porque é que este vetor tem de ter 10 elementos?
  4. #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> #include <time.h> #define V_MAX 8 // Valor máximo definido numa constante. int chave_sorteada(int numero_1, int numero_2, int numero_3, int numero_4); int main() { int chave_sorteada(int numero_1, int numero_2, int numero_3, int numero_4); chave_sorteada(0, 0, 0, 0); printf("\n A chave do programa eh %i %i %i %i \n", chave_sorteada); system("pause"); } int chave_sorteada(int numero_1, int numero_2, int numero_3, int numero_4) { srand(time(NULL)); numero_1 = 1 + rand() % 8; // Para tirarmos o primeiro número á sorte. numero_2 = 1 + rand() % 8; // Para tirarmos o segundo número á sorte. numero_3 = 1 + rand() % 8; // Para tirarmos o terceiro número á sorte. numero_4 = 1 + rand() % 8; // Para tirarmos o quarto número á sorte. while (numero_1 == numero_2 || numero_1 == numero_3 || numero_1 == numero_4 || numero_2 == numero_3 || numero_2 == numero_4 || numero_3 == numero_4) { numero_1 = 1 + rand() % 8; // Para tirarmos o primeiro número á sorte. numero_2 = 1 + rand() % 8; // Para tirarmos o segundo número á sorte. numero_3 = 1 + rand() % 8; // Para tirarmos o terceiro número á sorte. numero_4 = 1 + rand() % 8; // Para tirarmos o quarto número á sorte. } return numero_1, numero_2, numero_3, numero_4; } Boa tarde, estou a tentar elaborar um programa que crie o jogo MasterMind. Numa primeira fase, criei uma função para gerar 4 números aleatórios de 1 a 9, e retornar esses valores para a função main. Enquanto algum dos 4 números for igual, o programa deve gerar 4 novos números até todos serem diferentes e por isso utilizei o ciclo while. A minha dúvida é porque é que o printf não está a imprimir 4 números aleatórios de 1 a 9. E saber se em vez de retornar os 4 valores individualmente, poderia retornar esses 4 valores num vetor. Desde já obrigado pela ajuda.
  5. Funcionou, obrigado a todos pela ajuda!
  6. adicionado 0 minutos depois continua o erro
  7. Desculpe, não estou a ver onde
  8. ahh pois foi, obrigado! Continua a aparecer um erro nesta linha: if (strings_iguais("casa", "casa"))
  9. Boas, fiz um programa bem simples apenas para verificar a igualdade entre 2 strings, mas o meu compilador (visualStudio 2019) diz que tem erros na parte do "_Bool". Alguém pode explicar porquê e o que tenho de fazer para corrigir o problema? #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> int main() { _Bool strings_iguais(char s1[], char s2[]); if (strings_iguais("casa", "casa")) { printf("\n As strings sao Iguais. \n"); } else { printf("\n As strings nao sao Iguais. \n"); } system("pause"); } _Bool strings_iguais(char s1[], char s2[]) { int i = 0; while (s1[i] == s2[i] && s1[i] != '\0' && s2[i] != '\0') { ++i; } if (s1[i] == '\0' && s2[i] == '\0') { return 1; } else { return 0; } }
  10. Obrigado pelas dicas, no próximo post vou implementar. Quanto ao programa, o meu objetivo é fazer os cinco pontos propostos: -pedir o número de contactos a inserir; -permitir inserir os n contactos; -perguntar qual o número do contacto que pretende visualizar; -mostrar contacto pretendido; - repetir todo o processo se o utilizador assim o desejar. Não consigo entender como vou fazer isso tudo.
  11. Boa Tarde, depois de conseguir fazer o primeiro programa do pdf estou a tentar fazer o segundo mas não estou a conseguir. Tentei fazer um ciclo for mas não sei se está correto. Alguma ajuda? /*Repita o programa anterior criando um vector que permita guardar até 20 contactos. O programa deverá: o pedir o número de contactos a inserir o permitir inserir os n contactos o perguntar qual o número do contacto que pretende visualizar o mostrar contacto pretendido o repetir todo o processo se o utilizador assim o desejar*/ #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> typedef struct // Definição da Estrutura "Endereço" { char rua[50]; char numero[3]; char cidade[30]; char codigo_postal[9]; }tipo_endereco; typedef struct // Definição da Estrutura "Pessoal" { char nome[50]; int telefone[9]; tipo_endereco endereco; }ficha_pessoal; int main() { ficha_pessoal funcionario[20]; void funcionarios(ficha_pessoal funcionario[20]); funcionarios(0); //-------------------------------------------------------------------------------------------------// printf("\n--------------------------------------------------------------------------\n"); printf("\n--------------------------------------------------------------------------\n"); //-------------------------------------------------------------------------------------------------// printf("\n Nome do funcionario: %s", funcionario[20].nome); // Print das informações inseridas printf("\n Telefone do funcionario: %s", funcionario[20].telefone); printf("\n Rua do funcionario: %s", funcionario[20].endereco.rua); printf("\n Numero do funcionario: %s", funcionario[20].endereco.numero); printf("\n Codigo Postal do funcionario: %s", funcionario[20].endereco.codigo_postal); printf("\n Cidade do funcionario: %s \n\n", funcionario[20].endereco.cidade); system("pause"); } void funcionarios(ficha_pessoal funcionario[20]) { int n; printf("\n Quantos Contactos Pretende Inserir? \n"); scanf("%i", &n); for (int i = 0; i < n; i++) { printf("Digite o Nome do funcionario: "); // Estrutura Pessoal scanf("%s", funcionario[20].nome); printf("Digite o Telefone do funcionario: "); // Estrutura Pessoal scanf("%s", funcionario[20].telefone); printf("Digite a Rua do funionario: "); // Estrutura Endereço scanf("%s", funcionario[20].endereco.rua); printf("Digite o Numero da Rua do funionario: "); // Estrutura Endereço scanf("%s", funcionario[20].endereco.numero); printf("Digite o Codigo Postal do funionario: "); // Estrutura Endereço scanf("%s", funcionario[20].endereco.codigo_postal); printf("Digite a Cidade do funionario: "); // Estrutura Endereço scanf("%s", funcionario[20].endereco.cidade); } }
  12. entendi na perfeição, excelente explicação! Obrigado pela ajuda!
  13. sim, como faço para dar scanf numa estrutura e depois de inserir os dados imprimir tudo na tela.
  14. Boa noite, estou a ter a cadeira de programação na faculdade e estou com algumas dificuldades em fazer um programa com estruturas. Podem dar uma ajuda? O enunciado segue em pdf no anexo (É o programa 1 do pdf). #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> typedef struct // Definição da Estrutura "Endereço" { char rua[50]; int numero; char cidade[30]; char codigo_postal[8]; }tipo_endereco; typedef struct // Definição da Estrutura "Pessoal" { char nome[50]; int telefone; tipo_endereco endereco; }ficha_pessoal; int main() { system("pause"); } PC_Prat_Estruturas.pdf
  15. O seu programa está muito melhor apresentado. Muito obrigado pela ajuda e pelas dicas!
  16. if (nota[i] > mais_de_10) { mais_de_10 = nota[i]; mais_de_10++; } mesmo que metendo isto, continua sem funcionar
  17. /*Construa um programa que permita fazer a estatística das notas de uma turma : • A média das notas • A nota mais baixa • A nota mais alta • Quantas notas com mais de 10 valores O programa deverá pedir inicialmente o número de notas(máximo 10) que o utilizador pretende inserir e as notas deverão ser guardadas num vector.*/ #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> #include <math.h> int main() { float nota[10] = { 10, 12, 11, 8, 5, 14, 11, 12, 9, 18 }; float media = 0; float soma = 0; float max = nota[0]; float min = nota[0]; int n = 0; int mais_de_10 = 0; char continuar = 'c'; do { printf("\n Insira o numero de notas que pretender analisar. \n"); scanf("%i", &n); while (n < 0 || n > 10) { printf("\n O numero de notas eh no maximo 10!!! \n"); printf("\n Insira o numero de notas que pretender analisar. \n"); scanf("%i", &n); } for (int i = 0; i < n; i++) // Para Calcular a mádia. { soma += nota[i]; } media = soma / n; printf("\n A media das notas eh de %1.1f", media); for (int i = 1; i < n; i++) // Para ver a nota mais alta. { if (nota[i] > max) { max = nota[i]; } } printf("\n A nota mais Alta eh %1.1f", max); for (int i = 1; i < n; i++) // Para ver a nota mais Baixa. { if (nota[i] < min) { min = nota[i]; } } printf("\n A nota mais Baixa eh %1.1f ", min); for (int i = 1; i < n; i++) // Para ver quantas notas com mais de 10 valores. { if (nota[i] > mais_de_10) { mais_de_10 = nota[i]; } } printf("\n Existem %1.0f notas com mais de 10 valores. \n", mais_de_10); } while (continuar == 's'); system("pause"); } Boa tarde, estou com um problema no ultimo objectivo deste programa ( "Quantas notas com mais de 10 valores" ). O resto funciona tudo, só não estou a conseguir implementar o ultimo ciclo for de maneira correta. Alguém pode ajudar?
  18. Funciona na perfeição, obrigado pela ajuda !
  19. #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> #include <math.h> int main() { int dias = 0; int cilindrada = 1; float pagamento; char tipo_de_veiculo = 'l' || 'm'; char continuar = 's'; do { printf("\n Indique o numero de Dias que Pretende utilizar o veiculo. \n\n"); scanf("%d", &dias); if (cilindrada < 1250 || 1250 <= cilindrada <= 1850 || 1851 <= cilindrada <= 2450) { printf("\n\n Indique a cilindrada do veiculo que Pretende utilizar. \n\n"); printf("\n (1)- Ate 1250 cc.\n"); printf("\n (2)-De 1250 ate 1850 cc.\n"); printf("\n (3)-De 1851 ate 2450 cc.\n"); scanf("%d", &cilindrada); } else { printf("\n Escolha corretamente a Cilindrada do Veiculo. \n"); } if (tipo_de_veiculo == 'l' || tipo_de_veiculo == 'm') { printf("\n\n Indique o Tipo de veiculo que Pretende utilizar. \n\n"); printf("\n (l)-Ligeiro \n"); printf("\n (m)-Mercadorias \n"); scanf(" %c", &tipo_de_veiculo); } else { printf("\n Escolha corretamente o Tipo de Veiculo. \n"); } switch (cilindrada) { case 1: if (tipo_de_veiculo == 'l') { pagamento = 25 * dias; } else { pagamento = 30 * dias; } break; case 2: if (tipo_de_veiculo == 'l') { pagamento = 40 * dias; } else { pagamento = 50 * dias; } break; case 3: if (tipo_de_veiculo == 'l') { pagamento = 60 * dias; } else { pagamento = 65 * dias; } break; default: printf("\n Cilindrada Inexistente! \n"); } printf("\n\n O Valor do Pagamento eh de %d.", &pagamento); printf("\n\n Quer Continuar o Programa? \n\n"); scanf(" %c", &continuar); printf("\n----------------------------------------------\n"); printf("\n----------------------------------------------\n"); } while (continuar == 's'); system("pause"); } Boa tarde, estou a ter aulas de programação na faculdade e estou a tentar resolver o problema 2 que está no pdf em anexo. Será que podiam ajudar a resolver? tentei fazer alguma coisa, embora tenha noção que o código esteja cheio de erros. Exercicios_mec_controlo_fluxo.pdf
  20. muito obrigado! adicionado 15 minutos depois Mesmo assim continua a não funcionar adicionado 25 minutos depois Já deu, é só meter o int resultado; dentro do laço. Obrigado pela ajuda
  21. #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> int main() { int fatorial; int resultado = 1; char continuar = 's'; do { printf("Indique o numero do fatorial que quer calcular. \n\n"); scanf("%i", &fatorial); if (fatorial >= 1) { for ( ;fatorial >= 1;fatorial--) { resultado *= fatorial; } printf("\n\n O resultado do fatorial pedido eh %i \n\n", resultado); } else { printf("\n\n O numero do fatorial que escolheu nao eh positivo! \n\n"); } printf("\n\n Quer Continuar o Programa? \n\n"); scanf(" %c", &continuar); printf("\n-----------------------------------------------------------\n"); printf("\n-----------------------------------------------------------\n"); } while (continuar == 's'); system("pause"); } Boa tarde, estou com problemas neste programa. O programa calcula bem o fatorial do numero que o utilizador pede, mas quando chega a hora de fazer o segundo calculo ele multiplica pelo calculo feito da primeira vez, em vez de apenas calcular o fatorial do novo numero pedido pelo utilizador.

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