Programação Progressiva
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.
Programação Progressiva

Fórum para dúvidas dos sites: Programação Progressiva, Java Progressivo, C Progressivo


Você não está conectado. Conecte-se ou registre-se

erro !! no case 2:

3 participantes

Ir para baixo  Mensagem [Página 1 de 1]

1erro !!  no case 2: Empty erro !! no case 2: Dom Ago 09, 2015 9:46 pm

neogalax



ola gente quando executo o meu codigo e seleciono o CASE 2: esta aparecendo um numero 2 a mais o codigo, tentei achar o erro mas nao consegui kkkk se puder ajudar agradeco;

Código:
#include <iostream>
#include <stdlib.h>
#define MAX 5

using namespace std;


int numero[MAX];
int opc;
main(){
        for (int i = 0; i< MAX; i++){
            cout << "Informe " << i+1 << " numeros:\t" ;
            cin >> numero[i];
            system("cls");
            }

    do{
        cout << "Informe uma opcao:" << endl;
        cout << "1- para mostrar numeros em ordem direta:" << endl;
        cout << "2- para mostrar numeros em ordem inversa:" << endl;
        cout << "0- para sair" << endl;

        cin >> opc;

        switch(opc){

            case 1 :
                for (int i = 0; i< MAX; i++){
                cout << "numero direto:\t" << numero[i]  ;
                cout << "\n";
                }
                break;
            case 2 :
                for (int i = MAX; i >= 0; i--){
                cout << "numero inverttido\t" << numero[i]  ;
                cout << "\n";
                }
                break;
            case 0:
                cout << "saindo do sistema." << endl;
                break;
            default:
                cout << "Voce digitou uma opc. ivalida\n";

        }
    }while(opc !=0);



}

outra coisa como deixar esse codigo mais organizado ::?? obrigado

2erro !!  no case 2: Empty Re: erro !! no case 2: Dom Ago 09, 2015 11:03 pm

Taina tavares

Taina tavares

neogalax, não cheguei a observar direito o cod, mas deixa eu ver se entendi.
o maximo desse vetor ai é um vetor 5 né? tipo o usuario informa um numero de 5 digitos e ele poderá ver a opção normal ou inversa.


case 2 :
              for (int i = MAX; i >= 0; i--){

ao inves de digitar i>=0 na linha do case 2 , experimente i>0 , vamos vê se da certo ai,ja que ta aparecendo coisa a mais.

3erro !!  no case 2: Empty Re: erro !! no case 2: Seg Ago 10, 2015 2:25 am

AbnerRMS



Então, neogalax, eu testei aqui e é quase isso que a Taina tavares falou, só que na parte
de inicialização do for do case 2:
Código:
  // aqui - assim funciona
for (int i = (MAX - 1); i >= 0; i--)

Você escreveu pra guardar os números da posição 0 até a posição 4 no vetor "numero":
Código:
    // de 0  // até 4
for (int i = 0; i< MAX; i++){
    cout << "Informe " << i+1 << " numeros:\t" ;
    cin >> numero[i];
    system("cls");
}


Mas na hora de ler e exibi-los, você começou na posição 5 (fora do vetor) e foi até a posição 0:
Código:
 // Começou em 5 // foi até 0
for (int i = MAX; i >= 0; i--){
    cout << "numero inverttido\t" << numero[i]  ;
    cout << "\n";
}

É o famoso "erro por 1".


Já quanto a organização do código, você pode divídi-lo em funções...
Por exemplo:
Código:
#include <iostream>
#include <stdlib.h>

#define MAX 5

using namespace std;

void ReceberNumeros();
void EscolherOpcao();
void VerificarOpcao();

int numero[MAX];
int opc;

int main()
{
    ReceberNumeros();

    do
    {
        EscolherOpcao();

        VerificarOpcao();
    }
    while(opc != 0);

    return 0;
}

void ReceberNumeros()
{
    for (int i = 0; i < MAX; i++)
    {
        cout << "Informe " << i+1 << " numeros:\t" ;
        cin >> numero[i];
        system("cls");
    }
}

void EscolherOpcao()
{
    cout << "Informe uma opcao:" << endl;
    cout << "1- para mostrar numeros em ordem direta:" << endl;
    cout << "2- para mostrar numeros em ordem inversa:" << endl;
    cout << "0- para sair" << endl;

    cin >> opc;
}

void VerificarOpcao()
{
    switch(opc)
    {
        case 1 :
            for (int i = 0; i < MAX; i++)
                cout << "numero direto:\t" << numero[i] << endl;

            break;

        case 2 :
            for (int i = (MAX - 1); i >= 0; i--)
                cout << "numero inverttido\t" << numero[i] << endl;

            break;

        case 0:
            cout << "saindo do sistema." << endl;
            break;

        default:
            cout << "Voce digitou uma opc. ivalida\n";
    }
}

É isso. Very Happy

4erro !!  no case 2: Empty Re: erro !! no case 2: Seg Ago 10, 2015 1:51 pm

neogalax



kkk, nao acredito o (MAX -1) era o que faltava e olha que eu procurei o erro em. obrigado novamente

Conteúdo patrocinado



Ir para o topo  Mensagem [Página 1 de 1]

Permissões neste sub-fórum
Não podes responder a tópicos