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

fpinto

Ajuda a resolver alguns erros

7 mensagens neste tópico

eu fiz um prog mas nem sei porque mas aqui vai

#include <stdio.h>
#include <stdlib.h>

linha()
{
int o,c;

printf("quais sao os numeros\?");
scanf("%d %d", &o , &c );
}


main()
{

    int i,p;

  printf("o que queres faser\?");

   switch 
   {
    case '+': p=o+c linha();  break;
    case  '-' : p=o-c linha();  break;
    case   '*' : p=o*c linha(); break;
    case     ':' :
    case       '/' :
    case         '\\' : p=o/c linha(); break;
    default                    printf("nao existe nenhuma operacao assim");
   }



   system("PAUSE");
      return 0;



}





da os erros:

5: ANSI C++ forbids declaration `linha' with no type

21: parse error before `{'

22: break statement not within loop or switch

23: case label `'-'' not within a switch statement

23: confused by earlier errors, bailing out

nao sei o que se passa mas provavelmente nao e grave

cumps fpinto

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Boas!

Primeiro, edita o teu primeiro post e coloca um titulo que identifique bem a thread, sff.

#include <stdio.h>

#include <stdlib.h>

linha()

{

int o,c;

printf("quais sao os numeros\?");

scanf("%d %d", &o , &c );

}

main()

{

    int i,p;

  printf("o que queres faser\?");

  switch

  {

    case '+': p=o+c ; linha();  break;

    case  '-' : p=o-c ; linha();  break;

    case  '*' : p=o*c ; linha(); break;

    case    ':' :

    case      '/' :

    case        '\\' : p=o/c ; linha(); break;

    default                    printf("nao existe nenhuma operacao assim");

  }

  system("PAUSE");

      return 0;

}

A parte que está a negrito e a bem grande, falta um ponto e virgula entre a instrução e a chama de função. Coloquei a vermelho para notares melhor ;)

abraços, HecKel

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Já agora, isso nunca vai imprimir o texto adequado, as variáveis que usas na função linha() são variáveis locais, o facto de as alterares fora não vai afectar em nada.

Das duas uma, ou as declaras como variáveis globais, ou mandas como parâmetro. Recomendo a segunda.

abraços, HecKel

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

na funcao switch  quando da erro en todas as linhas sendo o erro:

case '1'  :  etc...

case '2'  :  etc...

case '3'  :  etc...

case '4'  :  etc...

da o mesmo erro em todas:

non-|ivalue in assigment

o que significa?

cumps fpinto

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

fpinto, não cries um tópico por dúvida..., se o problema que tens é sobre o código inicial desta thread, coloca as duvidas aqui, sff ;)

Sobre a tua dúvida, o funcionamento do switch é o seguinte:

switch (VARIÁVEL) {
case VALOR1 : etc
case VALOR2 : etc
case VALOR2 : etc
case VALOR2 : etc
default :
}

A VARIÁVEL terá de ser de um tipo "contável", por exemplo, CHARS, inteiros e afins.

Strings e floats não dão, pois não dá para fazeres uma contagem sequencial precisa destes tipos.

Espero que ajude ;)

abraços, HecKel

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

nao, nao e do mesmo programa.

mas bgd ps: podes apagar o outro treath.

cumps fpinto

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