Ir ao conteúdo

ajuda- menu- switch-loop infinito


Adao Henrique

Posts recomendados

Postado

Meu professor pediu que criarmos um menu, e o usuario escolheria uma opção que lhe dizia que o numero fornecido pelo usuario era primo, triangular...

No entanto assim que executo o código ele entra em um loop infinito. o que está errado nele???

Só poso usar essar estrururas.

 

#include<stdio.h>
#include<math.h>

int primo(int p){
     int i,r=0;
          for(i=2;i<p;i++){
              if(p%i==0){

                     r=1;
                    break;
            }
    } return r;

}

 

 

int perfeito(int pe){
       int total=0,c=1, r=1;
         while(c<pe){
            if (pe%c==0){
                total= total+c ;
                c++;
                }
                if(pe==total)
                r=0;
        return r;
        }
}

 

int triangular(int t){
    int i, c, r=1;
        for (c=0;c<=i;c++){
            if(c*(c+1)*(c+2)==i)
                r=0;
    return r;
}
}

 

int abundante(int a){

    int soma=0, c, r=1;
    for(c=1;c<a;c++){
        if (a%c==0)
        soma+= c;
            if(soma>a)
                r=0;
    return r;

    }
}

 

int main(){
    int n, i,c=1,j, k, l, numero;
    printf("\n1-Declarar um valor.\n");
    printf("2-Conferi se é primo.\n");
    printf("3-Conferi se é perfeito.\n");
    printf("4-Conferi se é triangular.\n");
    printf("5-Confere se é abundante.\n");
    printf("6-Sair");

    while(c!=6){
        switch(numero){

            case 1:
                printf("Digite um valor:");
                scanf("%d", &n);
                break;

            case 2:
               k= primo(n);
                if (k==0)
                    printf("0");
                else
                    printf("1");
                    break;


            case 3:
                j=perfeito(n);
                if (j==0)
                    printf("0");
                else
                    printf("1");
                    break;

            case 4:
                i=triangular(n);
                if(i==0)
                    printf("0");
                else
                    printf("1");
                    break;

            case 5:
                l=abundante(n);
                if (l==0)
                    printf("0");
                else
                    printf("1");
                    break;

            case 6:
                c=6;
                break;
            default:
                printf("Opcao invalida");
                break;

    }

}
}

Postado

Você tem muitas explicações a dar, por exemplo: Quem é a variável numero,

onde foi inicializada e o que faz no código? Há variáveis que parecem ser declaradas

ao acaso de suas inicializações, lei novamente a apostila do professor deve existir dicas.

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...