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

Unsigned aceitando negativos

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

1 Unsigned aceitando negativos em Sex Jul 18, 2014 11:19 pm

Boa noite a todos.
Criei uma variável unsigned int, para armazenar apenas valores positivos. Segundo o curso C Progressivo, variáveis unsigned não permite que valores negativos sejam atribuidos ao tipo. No meu código o compilador insiste em adicionar o valor negativo digitado pelo usuário no programa.

Código:

#include <stdio.h>
int main(void)
{
    short unsigned int notaprova;
    printf("Digite o valor da nota da prova: ");
    scanf("%d",&notaprova);

    short unsigned int media = notaprova / 12;
    printf("Media final anual: %d",media);

    getchar();
    return 0;

}

Ver perfil do usuário

2 Re: Unsigned aceitando negativos em Ter Jul 22, 2014 5:59 pm

williansilva.ti escreveu:Boa noite a todos.
Criei uma variável unsigned int, para armazenar apenas valores positivos. Segundo o curso C Progressivo, variáveis unsigned não permite que valores negativos sejam atribuidos ao tipo. No meu código o compilador insiste em adicionar o valor negativo digitado pelo usuário no programa.

Código:

#include <stdio.h>
int main(void)
{
    short unsigned int notaprova;
    printf("Digite o valor da nota da prova: ");
    scanf("%d",&notaprova);

    short unsigned int media = notaprova / 12;
    printf("Media final anual: %d",media);

    getchar();
    return 0;

}

esse forum funciona?

Ver perfil do usuário

3 Re: Unsigned aceitando negativos em Ter Set 16, 2014 10:02 am

Olá!
Sou novo no fórum e estou aprendendo também.
Algumas versões de compiladores para win7 e quase todas Linux o int tem 4 bytes antes era 2 bytes.
eu uso code::blocks 13.12 que já vem com o compilador mais atual.
Que me obriga a declarar as variáveis assim
Código:
/*Declara, inicializa e imprime minhas variáveis unsigned short x (2 Bytes - 65535) */
   unsigned short num_0 = -1;
   unsigned short num_2 = -1;
   printf("short unsigned num_0: %d tem Bytes: %d"
        "\nshort unsigned num_2: %d tem Bytes: %d"
          ,num_0,sizeof num_0,num_2,sizeof num_2);

se fizer o mesmo com tipo em qualquer parte não dará certo.

Ver perfil do usuário

Conteúdo patrocinado


Voltar ao Topo  Mensagem [Página 1 de 1]

Permissão deste fórum:
Você não pode responder aos tópicos neste fórum