Ir ao conteúdo

Programa compilado no dev-c++ da erro


gtoPaska

Posts recomendados

Postado

criei um programa bem simples no dev c++ 4.9.9.2, quando compilo, nao da erro nenhum, mas quando executo ele, da erro na metade, e nao termina, simplesmente fecha o programa

codigo fonte:

#include <stdio.h>

#include<iostream.h>

main()

{

int pips, porque, QJ;

float PPC, PF;

char res, y, n;

printf("Criado por Stael Viana e Augusto Santos\n");

printf("Este programa calcula o quanto cada jogador deve pagar, tendo como base o preco da quadra e a quantidade de jogadores\n");

printf("Informe o preco da quadra: ");

scanf("%d",&porque);

printf("Informe numero de jogadores: ");

scanf("%d",&QJ);

PPC=porque/QJ;

printf("O preco a ser pago por jogador e de R$ %.2f\n",PPC);

printf("voce acha que algum participante não vai ir na ultima hora ou vai esquecer o dinheiro?(y/n) ");

scanf("%c", res);

if(res == n) printf("Então está ok");

else if(res == y){

printf("Quantos, mais ou menos? ");

scanf("%d", pips);

PF=porque/(QJ-pips);

if (res == y) printf("Então, cada um deve levar, pelo menos R$ %.2f\n", PF);

system("pause");

};

}

o que pode estar acontecendo?

ps: é bem simples, estou apenas no primeiro mes de laboratorio de programaçao 1, no curso de engenharia de computação

outra obs: tentei em c++ com esse codigo ih, e em c sem o iostresm.h e o system ("pause") e mesmo assim da erro

Postado

Alguns erros que eu encontrei no seu programa:

falta colocar o caractere & antes da variável em algumas funções scanf, pois o que o scanf precisa é o endereço da memória.

Em um determinado momento você colocou:

} else if(res == 'y') {
....
...
if (res == y) printf("Então, cada um deve levar, pelo menos R$ %.2f\n", PF);

O segundo teste é inútil, tendo em vista que o escopo do if não acabou, logo res sempre será y nesse ponto.

No calculo da média, se você fizer por exemplo. 5/6 ele lhe retornará 0, pois você está divindo um int por outro. Para ocorrer da maneira correta você precisa dizer explicitamente isso através do cast. Basta adicionar antes da conta entre parenteses o tipo, nesse caso ficaria (float).

Seus nomes de variáveis estão um pouco ilegiveis. Se um dia você precisar dar manutenção nesse código, não vai lembrar nada do que está fazendo essa linha, por exemplo:

PF=porque/(QJ-pips);

Enfim, arrumei seu código. Sugiro fortemente que você tente resolver sozinho esses problemas antes de olhar o código que fiz. Lembrando que pode não estar funcionando da melhor maneira, pois estou lendo sobre C faz só uma semana e li muito pouco coisa, só no tempo de folga(no momento na hora que pego o onibus para o trabalho, porque no resto do tempo nem respiro direito). Mas chega de papo. Ai está o código:



float calcularMedia(int valor, int jogadores) {
return (float) valor / jogadores;
}

int main() {
int faltarao, preco, qtd_jogadores;
float media_preco, media_faltantes;
char res;

printf("Informe o preco da quadra: ");
scanf("%d",&preco);
printf("Informe numero de jogadores: ");
scanf("%d",&qtd_jogadores);
media_preco = calcularMedia(preco,qtd_jogadores);
printf("O preco a ser pago por jogador e de R$ %.2f\n",media_preco);
printf("voce acha que algum participante não vai ir na ultima hora ou vai esquecer o dinheiro?(y/n)");
scanf(" %c", &res);
if(res == 'n') {
printf("Então está ok");
} else if(res == 'y') {
printf("Quantos, mais ou menos? ");
scanf("%d", &faltarao);
media_faltantes = preco /(qtd_jogadores - faltarao);
printf("Então, cada um deve levar, pelo menos R$ %.2f\n", media_faltantes);
};
getch();
return 0;
}
#include<stdio.h>

Postado

consegui resolver 2 minutos antes de ler sua msg

hauhauahuahauhaahua

quando eu chegar em casa olho a sua, mas muito obrigado mesmo assim

  • Membro VIP
Postado

if(res == n) printf("Então está ok");

else if(res == y){

if (res == y) printf("Então, cada um deve levar, pelo menos R$ %.2f\n", PF);

Usa strcmp pra poder comparar corretamente.Abraços.

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

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!