Fernando Costa Posted December 30, 2016 at 03:21 PM Report Share #601602 Posted December 30, 2016 at 03:21 PM boa tarde, alguem me pode dizer o erro deste código? Ou se falta acrescentar alguma coisa para correr no visual studio 2015? #include <stdio.h> #include <stdlib.h> #include <time.h> #include <conio.h> #include <string.h> //funçao para gerar golos em futebol americano e basquetebol visto que as pontuaçoes sao superiores as do futebol int Golo() { int x = rand() % 100;//gera um numero de o a 100 return x; } //funçao que calcula o ganho monetario float Ganho(float a, float b) {//a=cota para o resultado b=aposta int ganho = a*b;//multiplica a cota pela a posta return ganho; } //funçao para gerar resultados de futebol int Golos() { int x = rand() % 10;//gera um numero entre o 0 e 10 return x; } //função para gerar cotas float Cotas() { int x; x = rand() % 100;//gera um numerp entre 0 e 100 x = x / 10;//divide esse numero por 11 para criar um numero mais peque e com casas decimais x = x + 1;//soma um pois o minimo de cota é 1.00 return x; } //função que serve para mostrar a lista de jogos char Mostra(char url[]) { char ch;//determina que é um arquivo par escrever FILE *arq;//identifica o arquivo(arq) como file em uso arq = fopen(url, "r");//abre o arquivo apenas em modo de leitura("r") while ((ch = fgetc(arq)) != EOF)//enquanto houver caracteres continua a leitura dos mesmos putchar(ch);//coloca os caracterees na consola fclose(arq);//fecha o arquivo } int Pontos() { int x = rand() % 2;//gera um numero de o a 100 return x; } int Ponto() { int x = rand() % 2;//gera um numero de o a 100 return x; } int main(int argc, char *argv[]) { int opcao; float carregado = 0;//pois o saldo inicial é zero float aposta; while (opcao != 5) { printf("Selecione a sua opcao\n1-Ver/Carregar saldo\n2-Jogar\n3-Listar os jogos dispiniveis\n4-Gravar\n5-Sair\n"); scanf("%i", &opcao);//recebe a opcao if (opcao == 1) {//o utilizador pode ver e carrega o saldo int opcao2; printf("O seu saldo: %.3f euros\nDeseja carregar?\n1(sim) 2(nao)\n", carregado); scanf("%i", &opcao2);//recebe se pertender carregar if (opcao2 == 1) {//caso pertenda carregar float a; printf("Com quanto deseja carregar?\n"); scanf("%f", &a);//recebe a quantia carregado = carregado + a;//atualiza saldo printf("\n"); } else//caso nao pertenda carregar { printf("Nao pode jogar\n\n"); } } if (opcao == 2) {//o utlizador faz apostas int modalidade; printf("Qual a modalidade em que pertende apostar?\n1-Tenis\n2-Futebol\n3-Basquetebol\n"); scanf("%i", &modalidade); if (modalidade == 1) {//o utilizador escolhe Tenis como modalidade int jogo; float a = Cotas();//cota vitoria visitada float c = Cotas();//cota vitoria visitante Mostra("TENIS.txt");//metodo que escreve os jogos disponiveis printf("\n"); printf("Em que jogo deseja apostar?\n"); scanf("%i", &jogo);//recebe a indicaçao do jogo printf("----------COTAS---------\n"); printf("CASA %.3f %.3f FORA\n", a, c);//apresenta as cotas printf("Quanto pertende apostar?\n"); scanf("%f", &aposta);//recebe a aposta if (aposta <= carregado) {//caso possua o dinheiro que pertende apostar int e; printf("Em que resultado?\n1(Vitoria Visitado) 2(Vitoria Visitante)\n"); scanf("%i", &e);//recebe o prognostico int w = Pontos();//gera pontos visitado int z = Ponto();//gera pontos visitante if (w>z&&e == 1) {//caso escolha vitoria do visitado printf("Resultado\nCASA %.1i VS %.1i FORA\n", w, z); float x = Ganho(a, aposta);//funçao dos ganhos carregado = carregado + x;//atualiza o slado printf("O seu saldo atual e: %.3f euros", carregado);//mostra o saldo atualizado } if (w<z&&e == 2) {//casoescolha vitoria de visitante printf("Resultado\nCASA %.1i VS %.1i FORA\n", w, z); float x = Ganho(c, aposta);//funçao dos ganhos carregado = carregado + (x - aposta);//atualiza o slado printf("O seu saldo atual e: %.3f euros", carregado);//mostra o saldo atualizado } if (w == z) {//Como no tenis não há empates w = 2; z = 1; printf("Resultado\nCASA %.1i VS %.1i FORA\n", w, z); if (e == 1) { float x = Ganho(a, aposta);//funçao dos ganhos carregado = carregado + (x - aposta);//atualiza o slado printf("O seu saldo atual e: %.3f euros", carregado);//mostra o saldo atualizado } if (e == 2) { float x = Ganho(a, aposta);//funçao dos ganhos carregado = carregado - aposta;//atualiza o slado printf("O seu saldo atual e: %.3f euros", carregado);//mostra o saldo atualizado } } else { printf("Perdeu o que apostou\n"); carregado = carregado - aposta;//atualiza o saldo printf("O seu saldo e : %.3f euros", carregado);//mostra o saldo atualizado } } if (aposta>carregado) { printf("Nao possui essa quantida\n"); } } if (modalidade == 2) {//o utilizador escolhe Futebol como modalidade int jogo; float a = Cotas();//cota vitoria visitado float b = Cotas();//cota empate float c = Cotas();//cota vitoria visitante Mostra("FUTEBOL.txt");//metodo que escreve os jogos disponiveis printf("Em que jogo deseja apostar?\n"); scanf("%i", &jogo);//recebe a indicaçao do jogo printf("----------COTAS---------\n"); printf("CASA %.3f %.3f %.3f FORA\n", a, b, c);//apresenta as cotas printf("Quanto pertende apostar?\n"); scanf("%f", &aposta);//recebe a aposta if (aposta <= carregado) {//caso possua o dinheiro que pertende apostar int e; printf("Em que resultado?\n1(Vitoria Visitado) 2(Empate) 3(Vitoria Visitante)"); scanf("%i", &e);//recebe o prognostico int w = Golos();//gera golos visitado int z = Golos();//gera golos visitante printf("Resultado\nCASA %.1i VS %.i FORA\n", w, z); if (w == z&&e == 2) {//caso escolha empate float x = Ganho(b, aposta);//funçao dos ganhos carregado = carregado + (x - aposta);//atualiza o saldo printf("O seu saldo atual e: %.3f euros", carregado);//mostra o slado atualizado } if (w>z&&e == 1) {//caso escolha vitoria do visitado float x = Ganho(a, aposta);//funçao dos ganhos carregado = carregado + x;//atualiza o saldo printf("O seu saldo atual e: %.3f euros", carregado);//mostra o saldo atualizado } if (w<z&&e == 3) {//casoescolha vitoria de visitante float x = Ganho(c, aposta);//funçao dos ganhos carregado = carregado + x;//atualiza o saldo printf("O seu saldo atual e: %.3f euros", carregado);//mostra o saldo atualizado } else { printf("Perdeu o que apostou\n"); carregado = carregado - aposta;//atualiza o saldo printf("O seu saldo e : %.3f euros", carregado);//mostra o saldo atualizado } } if (aposta>carregado) { printf("Nao possui essa quantida\n"); } } if (modalidade == 3) {//o utilizador escolhe Basquetebol como modalidade int jogo; float a = Cotas();//cota vitoria visitado float b = Cotas();//cota empate float c = Cotas();//cota vitoria visitante Mostra("BASQUETEBOL.txt");//metodo que escreve os jogos disponiveis printf("Em que jogo deseja apostar?\n"); scanf("%i", &jogo);//recebe a indicaçao do jogo printf("----------COTAS---------\n"); printf("CASA %.3f %.3f %.3f FORA\n", a, b, c);//apresenta as cotas printf("Quanto pertende apostar?\n"); scanf("%f", &aposta);//recebe a aposta if (aposta <= carregado) {//caso possua o dinheiro que pertende apostar int e; printf("Em que resultado?\n1(Vitoria Visitado) 2(Empate) 3(Vitoria Visitante)"); scanf("%i", &e);//recebe o prognostico int w = Golos();//gera golos visitado int z = Golos();//gera golos visitante printf("Resultado\nCASA %.1i VS %.i FORA\n", w, z); if (w == z&&e == 2) {//caso escolha empate float x = Ganho(b, aposta);//funçao dos ganhos carregado = carregado + x;//atualiza o saldo printf("O seu saldo atual e: %.3f euros", carregado);//mostra o saldo atualizado } if (w>z&&e == 1) {//caso escolha vitoria do visitado float x = Ganho(a, aposta);//funçao dos ganhos carregado = carregado + x;//atualiza o saldo printf("O seu saldo atual e: %.3f euros", carregado);//mostra o salod atualizado } if (w<z&&e == 3) {//casoescolha vitoria de visitante float x = Ganho(c, aposta);//funçao dos ganhos carregado = carregado + x;//atualiza o saldo printf("O seu saldo atual e: %.3f euros", carregado);//mostra o saldo atualizado } else { printf("Perdeu o que apostou\n"); carregado = carregado - aposta;//atualiza o saldo printf("O seu saldo e : %.3f euros", carregado);//mostra o saldo atualizado } } if (aposta>carregado) { printf("Nao possui essa quantida\n"); } } } if (opcao == 3) {//lidar os jogos disponiveis printf("O jogos disponiveis sao:\n"); Mostra("MODALIDADES.txt");//usa a funçao que permite mostrar o ficheiro com os jogos } if (opcao == 4) {//grava num ficheiro .txt de nome Resultadoos todos os resultados do jogos srand(time(NULL)); char url[] = ("Resultadoos.txt"); FILE*arq; arq = fopen(url, "w"); fprintf(arq, "Resultados de Tenis\n\n"); //escreve num ficheiro todos os jogos de Tenis fprintf(arq, "Resultado\nJOGO 1 CASA %.1i VS %.1i FORA\n", 2, 1); fprintf(arq, "Resultado\nJOGO 2 CASA %.1i VS %.1i FORA\n", 0, 2); fprintf(arq, "Resultado\nJOGO 3 CASA %.1i VS %.1i FORA\n", 1, 2); fprintf(arq, "Resultado\nJOGO 4 CASA %.1i VS %.1i FORA\n", 2, 0); fprintf(arq, "Resultado\nJOGO 5 CASA %.1i VS %.1i FORA\n", 2, 1); fprintf(arq, "Resultados de Futebol\n\n"); int j; for (j = 1; j<31; j++) {//escreve num ficheiro todos os jogos de futebol int w = Golos(); int z = Golos(); fprintf(arq, "JOGO %i CASA %.1i VS %.1i FORA\n", j, w, z); } fprintf(arq, "Resultados da NBA\n\n"); int h; for (h = 1; h<11; h++) {//escreve num ficheiro todos os resultados de Basquetebol fprintf(arq, "JOGO %.i CASA %.1i VS %.1i FORA\n", h, Golo(), Golo()); } } } return 0; } Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted December 30, 2016 at 05:42 PM Report Share #601606 Posted December 30, 2016 at 05:42 PM bem ... a primeira pergunta que se faz (e sem olhar para uma única linha de código, como sempre) é : qual é o erro ? IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
Xendro Posted December 31, 2016 at 12:58 AM Report Share #601621 Posted December 31, 2016 at 12:58 AM (edited) Um palpite: char Mostra(char url[]) { e pasado como argumento um nome de ficheiro sem a path. logo e suposto este(s) existir no local em que o programa corre ou não e encontrado ! arq = fopen(url, "r"); seria desejavel verificar a variavel "arq" antes de usar Edited December 31, 2016 at 01:04 AM by Xendro Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now