Forum Pplware
Ajuda em exercício de Programação em C - Versão de Impressão

+- Forum Pplware (http://forum.pplware.com)
+-- Fórum: Mais Tech (/forumdisplay.php?fid=11)
+--- Fórum: Programação e Web (/forumdisplay.php?fid=16)
+--- Tópico: Ajuda em exercício de Programação em C (/showthread.php?tid=10217)



Ajuda em exercício de Programação em C - miranda_c - 27-11-2011 02:16

Boa noite pessoal, sou uma estudante de Matemáticas Aplicadas que tem um cadeira de Programação. Nunca tinha tido essa cadeira e não percebo nada ou muito pouco.
Tenho um trabalho para programar um jogo e pedia ajuda para aquilo que fiz, para que me indicassem os erros, o que pode estar mal pois o programa não corre ou não compila.
O que é pedido é
Alínea A) Uma carta

Faça um programa que pede ao utilizador um número entre 0 e 39, e mostra a carta correspondente. O dígito menos significativo corresponde o número (0 ao 2, 1 ao 3, e assim sucessivamente até que o dígito 9 corresponde ao A), sendo a sequência completa a seguinte: 23456DVR7A. O dígito mais significativo corresponde ao naipe (0 a  (copas), 1 a  (ouros), 2 a  (paus) e 3 a  (espadas)). Utilizar os caracteres com o código ASCII 3 a 6 para representar o naipe (utilizar fonte Lucida Console).

Execução de exemplo:
Código:
C:\>111111A
Introduza carta (0-39): 2
Carta introduzida: 4
C:\>111111A
Introduza carta (0-39): 10
Carta introduzida: 2
C:\>111111A
Introduza carta (0-39): 29
Carta introduzida: A
C:\>111111A
Introduza carta (0-39): 37
Carta introduzida: R
C:\>111111A
Introduza carta (0-39): 40
Carta introduzida:

Eis o que fiz, com base no manual de programação fornecido pelo professor.
Código:
# include <stdio.h>
int main()
{
    int n;
    int selected[40];
    printf("Introduza carta (0-39): \n:");
    scanf("%d", & n);
    if (n<0||n>39)
printf("Erro: a Carta introduzida tem se ser entre 0 e 39.\n");

    int input; // valor dado pelo utilizador

    int naipe = input / 10;  // valor do naipe (divisão inteira por 10)
    int carta = input % 10; // valor da carta (resto da divisão inteira por 10)

    char cartas[] = "23456DVR7A";
    char carta_do_utilizador = cartas[carta];

    char naipes[] = "copas,ouros,paus,espadas";
    char naipe_do_utilizador = naipes[naipe];
    printf("carta introduzida: \n");
}

O que falta? Tá assim tão errado? Este é o exercício mais fácil, ainda tenho mais 2 que se baseiam neste. Assim não consigo passar para os outros.
Por favor alguém me ajuda? Tenho de entregar o work até dia 28/11
Cumps,

Miranda


RE: Ajuda em exercício de Programação em C - Article0 - 29-11-2011 00:39

Solução:

1º-compra um baralho de cartas;
2º-Pede ao prof para te fazer;
3º-Arranja um explicador;
4º-Muda para o sporting;
5º-faz algo como printf("escolhe 1 a 39")
scanf("dados")
while{
if(x<=39)
printf("o numero é x")
else
printf("escolhe de novo")
}

Claro que isso tudo dentro de um Array

ou entao o for acho que tambem da. Ja nao mexo em C algo tempo, mas espero ter ajudado. MAs olha segue o ponto 4 é o melhor


RE: Ajuda em exercício de Programação em C - progster - 29-11-2011 00:43

(29-11-2011 00:39)Article0 Escreveu:  Solução:

1º-compra um baralho de cartas;
2º-Pede ao prof para te fazer;
3º-Arranja um explicador;
4º-Muda para o sporting;
5º-faz algo como printf("escolhe 1 a 39")
scanf("dados")
while{
if(x<=39)
printf("o numero é x")
else
printf("escolhe de novo")
}

Claro que isso tudo dentro de um Array

ou entao o for acho que tambem da. Ja nao mexo em C algo tempo, mas espero ter ajudado. MAs olha segue o ponto 4 é o melhor

EEK! wtf?
Bem..., isto há com cada um.


RE: Ajuda em exercício de Programação em C - Article0 - 29-11-2011 00:44

tentei ajudar ao estilo diferente so isso


RE: Ajuda em exercício de Programação em C - progster - 29-11-2011 00:46

(29-11-2011 00:44)Article0 Escreveu:  tentei ajudar ao estilo diferente so isso

Tongue Ok.


RE: Ajuda em exercício de Programação em C - RuiPereira - 29-11-2011 19:31

int main(){

int num=0;

while(1){ // ciclo infinito

printf("Introduza carta (0-39):");
scanf("%d", &num);

if(num>=0 && num<=39)
{
if(num<10)
{
switch(num){
case 0:
printf("Carta introduzida: 2");
break;

case 1:
printf("Carta introduzida: 3");
break;

case 2:
printf("Carta introduzida: 4");
break;

case 3:
printf("Carta introduzida: 5");
break;

case 4:
printf("Carta introduzida:6");
break;

case 5:
printf("Carta introduzida: D");
break;

case 6:
printf("Carta introduzida: V");
break;

case 7:
printf("Carta introduzida: R");
break;

case 8:
printf("Carta introduzida: 7");
break;

case 9:
printf("Carta introduzida: A");
break;
}
}
else{
switch((num/10)){
case 1:
printf("Carta introduzida: 2");
break;

case 2:
printf("Carta introduzida: 3");
break;

case 3:
printf("Carta introduzida: 4");
break;

case 4:
printf("Carta introduzida: 5");
break;

case 5:
printf("Carta introduzida: 6");
break;

case 6:
printf("Carta introduzida: D");
break;

case 7:
printf("Carta introduzida: V");
break;

case 8:
printf("Carta introduzida: R");
break;

case 9:
printf("Carta introduzida: 7");
break;

case 10:
printf("Carta introduzida: A");
break;
}
}

}

}
}
return 0;
}


RE: Ajuda em exercício de Programação em C - progster - 29-11-2011 20:26

(29-11-2011 19:31)RuiPereira Escreveu:  int main(){

int num=0;

while(1){ // ciclo infinito

printf("Introduza carta (0-39):");
scanf("%d", &num);

if(num>=0 && num<=39)
{
if(num<10)
{
switch(num){
case 0:
printf("Carta introduzida: 2");
break;

case 1:
printf("Carta introduzida: 3");
break;

case 2:
printf("Carta introduzida: 4");
break;

case 3:
printf("Carta introduzida: 5");
break;

case 4:
printf("Carta introduzida:6");
break;

case 5:
printf("Carta introduzida: D");
break;

case 6:
printf("Carta introduzida: V");
break;

case 7:
printf("Carta introduzida: R");
break;

case 8:
printf("Carta introduzida: 7");
break;

case 9:
printf("Carta introduzida: A");
break;
}
}
else{
switch((num/10)){
case 1:
printf("Carta introduzida: 2");
break;

case 2:
printf("Carta introduzida: 3");
break;

case 3:
printf("Carta introduzida: 4");
break;

case 4:
printf("Carta introduzida: 5");
break;

case 5:
printf("Carta introduzida: 6");
break;

case 6:
printf("Carta introduzida: D");
break;

case 7:
printf("Carta introduzida: V");
break;

case 8:
printf("Carta introduzida: R");
break;

case 9:
printf("Carta introduzida: 7");
break;

case 10:
printf("Carta introduzida: A");
break;
}
}

}

}
}
return 0;
}

Bem, está aqui uma lógica...
Dar a solução de bandeja, sem dar uma ajuda de como lá chegar, e logo no primeiro post de ambos...


RE: Ajuda em exercício de Programação em C - RuiPereira - 30-11-2011 10:52

Desculpem ter dado uma ideia logo, sem ter dado algumas luzes, mas também está na mãe dele tentar perceber e as dúvidas que tiver perguntar.
Mas tens razão...


RE: Ajuda em exercício de Programação em C - fredesilva13 - 30-11-2011 15:13

ficou a faltar um switch para indicar o naipe colocado...