Ir para conteúdo
Oscar Conceição

Questão em C

Recommended Posts

Alguém por favor diga qual o erro no meu código e resolva a questão para mim.

Clara está organizando as fotos da sua última viagem num álbum de fotos. Como ela tem muitas fotos, para economizar páginas do álbum ela quer colar duas fotos por página do álbum.

Como as fotos são retangulares, as fotos podem ser coladas giradas (mas sempre com lados paralelos aos da página do álbum, para preservar o equilíbrio estético do álbum), mas elas devem sempre ficar inteiramente contidas no interior da página, e não devem se sobrepor.

Em geral, das muitas formas de posicionar as fotos do álbum só algumas (ou nenhuma) satisfazem estas restrições, então pode ser difícil decidir se é possível colar as duas fotos em uma mesma página do álbum, e por isso Clara pediu a sua ajuda para escrever um programa que, dadas as dimensões da página e das fotos, decide se é possível colar as fotos na página.

Por exemplo, cada página pode ser 5×7, e duas fotos são 3×4.

Entrada

A primeira linha da entrada contém dois inteiros X e Y , indicando a largura e a altura da página do álbum. Cada uma das duas linhas seguintes contém dois inteiros L e H, indicando a largura e a altura das fotos.

Saída

Imprima uma única linha, contendo um único caractere: 'S', se é possível colar as duas fotos na página do álbum, e 'N', caso contrário.

Código que eu criei:

main(){
int var1,var2,var3,var4,var5,var6,x,y,w,z;
scanf("%d %d",&var1,&var2);
scanf("%d %d",&var3,&var4);
scanf("%d %d",&var5,&var6);
if(var3>=var5){
x=var3;
}else{
x=var5;
}
if(var4>=var6){
y=var4;
}else{
y=var6;
}
if(var3>=var6){
w=var3;
}else{
w=var6;
}
if(var4>=var5){
z=var4;
}else{
z=var5;
}
if(var1>=var3+var5 && var2>=y || var1>=var3+var6 && var2>=z || var1>=x && var2>=var4+var6 || var1>=w && var2>=var4+var5){
printf("S");
}else{
printf("N");
}
return 0;
}

Compartilhar este post


Link para o post
Compartilhar em outros sites
Em 29/07/2016 at 11:53, sergiolopessp disse:

O valor que define o tamanho da página, também está definindo o tamanho da foto? é isso que você codificou?

 

Não. O tamanho da página é armazenado em duas váriáveis que são diferentes das outras 4 variáveis que armazenam o tamanho de cada uma das duas fotos. 

 

O erro do programa é que ele mostra como sendo possível colocar duas fotos que suas dimensões somadas são maiores do que a página do álbum quando o certo é o programa mostrar que isso não é possível. O programa está fazendo isso por que há nele variáveis e também comparações desnecessárias e sem sentido. As variáveis x,y,w e z para nada servem e podem ser retiradas do programa. Ele está verificando se a largura da página é maior ou igual a altura da primeira foto somada com a largura da segunda. Não há motivo para haver isso na lógica do programa. Isso não define se as fotos cabem ou não no álbum. Esse programa está errado. Ele reescrito da maneira certa é assim:

 

main(){
int var1,var2,var3,var4,var5,var6;
scanf("%d %d",&var1,&var2);
scanf("%d %d",&var3,&var4);
scanf("%d %d",&var5,&var6);
if((var1>=var3)&&(var1>=var5)&&(var2>=(var4+var6))){
printf("S");
}else{
printf("N");
}
system("pause");
return 0;
}
 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.