• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

telminha

ajuda para analisar os pekenos algoritmos

4 mensagens neste tópico

pessoal estou a começar a fazer alguns algoritmos em c++....alguem podia verificar o meu code e ver o k esta mal...agradecia imenso...

visual c++ 2008 é o compilador

#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>
#
char caract;
char Nn;
int p, vd;

int _tmain(int argc, _TCHAR* argv[])
{

//Menu
int rsp;
//puts!=printf
     puts("1 - exercicio 1 parte 1");
     puts("2 - exercicio 1 Parte 2");
     puts("3 - exercicio 1 Parte 3");
 puts("4 - exercicio 1 Parte 4");

     scanf("%d",&rsp);
switch (rsp)
       {
   case 1:

//se o caracter enserido for diferente de '*' mostra outro caracter se n mostra o caracter*
               scanf("%s",&caract);
               if(caract!='*')
               printf("Digitou o Caracter, %c",caract);

   else

                printf("Digitou o caracter asterisco,%c",caract);

                 break;
	case 2:

		//mesmo exercicio mas com o ternario
		printf("Digite um caracter ");
			scanf("%s", &caract);
				caract=='*'? printf("Digitou o caracter asterisco \n") : printf("Digitou o caracter %c",caract);
	break;

	case 3:

		//verifica se o utilizador enseriu N ou n  
		printf("Digite um Caracter");
		scanf("%c",&Nn);

		if (Nn== 'n' || Nn== 'N')
			Nn='n'
			printf ("Escolheu a opção Não,%c", Nn);
		else

			printf("%c", Nn);


		break;

	case 4:
		//mostra se o numero enserido é par ou impar

	vd=0
		while (vd == 0) //enquanto a condiçao for vdd
  {

puts("Digite um número");


  scanf("%i",&p);

  if (p%2 == 0)

  
            printf("\n%i e par. \n",p);

         
            else
  
           printf("\n%i e impar. \n",p);

                




system("PAUSE");
return 0;
}

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Para começar aconcelho por meteres todo o codigo de cada case numa funcao respectiva que efectua a funcionalidade pretendida, logo tudo se torna mais simples.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Identa o teu código como deve ser e diz quais são os algoritmos que estás a implementar para te podermos ajudar. :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Bom... podes começar por escrever código em C++, em vez de C.

Funções como scanf, puts e printf são funções C que existem no C++ por razões de backwards compatibility. Já os headers como stdio.h e stdlib.h são headers C. As suas equivalentes em C++ são cstdio e cstdlib (sem .h)

Se queres usar C++ tira proveito da linguagem e evita usares C. scanf, puts e printf são facilmente substituíveis por std::cin e std::cout.


Entretanto stdfafx.h é um header da microsoft e dependes dele apenas para usares _tmain(). Porque não escrever código que funcione em qualquer sistema operativo sem ser exclusivamente Windows? Retiras o stdafx.h e usas main(). Desta forma, e porque o teu programa não precisa de fazer uso nenhum do Windows, eu por exemplo poderia ter testado o teu código no Linux.

Posso fazer eu a alteração e então testar o teu código, mas não me apetece :) Não sou eu que tenho de alterar o teu código. És tu que tens de mostrar o código de forma a que a maior parte das pessoas possa te ajudar.

Na mesma linha de raciocínio, system("pause") é Microsoft Windows. Linux, Solaris, BSD, MacOs não têm "pause".


Finalmente, pondera dar nomes às tuas variáveis mais indicativos do seu uso. Nn, p e vd não são nomes que ajudem ninguém. Nem mesmo tu quando daqui a dois dias voltares a olhar para o código :)


E por fim, alguns erros no teu código:

if (Nn== 'n' || Nn== 'N')
			Nn='n' // <--- Falta-te qualquer coisa aqui
			printf ("Escolheu a opção Não,%c", Nn);
		else

			printf("%c", Nn);

        vd=0 // <-- e aqui também
           while (vd == 0) //enquanto a condiçao for vdd

            system("PAUSE");
            return 0;
        }
// <-- Nesta linha está a faltar uma coisa

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora