Ir para conteúdo
Fórum Script Brasil
  • 0

Problema em programa em C


lapod

Pergunta

Sou iniciante em C e estou fazendo um trabalho onde uma das variaveis deveria receber um valor x, mas não esta acontecendo. aqui esta uma parte do programa, onde já sei q há erro, mas não consigo identificar, qual.

float main()
   {
       float numerousavel, a11, a12, a13, a21, a22, a23, a31, a32, a33;
       printf("Digite um numero de nove digitos. \n");
       scanf("%d", &numerousavel);
              
                                     
                                     
       if(2>numerousavel/100000000>1)
       {
                                     a11=1;
                                     }
       if(3>numerousavel/100000000>2)
       {
                                     a11=2;
                                     }
       if(4>numerousavel/100000000>3)
       {
                                     a11=3;
                                     }
       if(5>numerousavel/100000000>4)
       {
                                     a11=4;
                                     }
       if(6>numerousavel/100000000>5)
       {
                                     a11=5;
                                     }
       if(7>numerousavel/100000000>6)
       {
                                     a11=6;
                                     }
       if(8>numerousavel/100000000>7)
       {
                                     a11=7;
                                     }
       if(9>numerousavel/100000000>8)
       {
                                     a11=8;
                                     }
       if(numerousavel/100000000>9)
       {
                                     a11=9;
                                     }

        printf("%d", a11)

deste modo, ao haver a entrada de um numero de 9 digitos, eu conseguiria jogar para dentro de "a11" o valor do primeiro digito. porem, ao compilar o programa, me aparece q a11 da q a11 tem valor diferente.... q acontece??

Editado por Durub
Adicionar tags code [Durub]
Link para o comentário
Compartilhar em outros sites

16 respostass a esta questão

Posts Recomendados

  • 0

não deu! estranho... troquei por int e troquei o > por outra expressao e ainda dá erro

agora tah assim:

#include <stdio.h>

   int main()
   {
       double numerousavel;
       char a11, a12, a13, a21, a22, a23, a31, a32, a33;
       printf("Digite os numeros do quadrado \n");
       scanf("%d", numerousavel);
              
                                     
                                     
       if(2>numerousavel/100000000 && numerousavel/100000000>1)
       {
                                     a11=1;
                                     }

....

Editado por Durub
Adicionar tags code [Durub]
Link para o comentário
Compartilhar em outros sites

  • 0

Ainda não entendi exatamente o que você precisa...

Se quer pegar o nono dígito do número digitado, faça o seguinte:

digito = numerousavel%100000000;
printf("Digito: %d\n", digito);
Já se você quiser saber quantos dígitos existem, pode fazer o seguinte:
for(i=1; numerousavel>10; i++)
  numerousavel /= 10;
printf("Numero possui %d digitos", i);

Se quiser explico o código...

Link para o comentário
Compartilhar em outros sites

  • 0

Desculpe, fui fazer rápido e me confundi nos dois exemplos...

Segue o código completo de um programa que retorna o nono dígito:

#include <stdio.h>

int main(void)
{
        float numero = 123456789;
        int digito;

        digito = (int)(numero)/100000000;
        printf("Nono digito: %d\n", digito);

        return 0;
}

Link para o comentário
Compartilhar em outros sites

  • 0

marcelo!!! seu codigo não funciona com scanf!!! porque?

como você fez, já dando um valor fixo para "numero", o programa rolou.... quando eu quero q o numero digitado venha do teclado o programa trava. o que eu faço???

ps. coloquei o codigo scanf("%d", numero)

Link para o comentário
Compartilhar em outros sites

  • 0

Mais uma coisa: se o número tiver mais digitos, temos que remover os posteriores também. A divisão do código original tira apenas os dígitos anteriores.

Segue a alteração para 6 dígitos:

#include <stdio.h>

int main(void)
{
        float numero = 123456789;
        int digito;

        digito = ((int)(numero)/1000000)%10;
        printf("Sexto digito: %d\n", digito);

        return 0;
}

Editado por Marcelo Utikawa da Fonseca
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...