Ir para conteúdo

POWERED BY:

Arquivado

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

Leo Morais

vetores

Recommended Posts

ola galera ,

tenho um problema na hr de eu pegar apenas um numero

do valor digitado, o programa nao esta compilando

void main(){
char numero[8]="\0";
printf("Digite um valor: ");
scanf("%s",&numero);
    switch(numero[0][0]){
        case 1:printf ("cem mil, ");break;
        case 2:printf ("cem mil, ");break;
        case 3:printf ("cem mil, ");break;
        case 4:printf ("cem mil, ");break;
        case 5:printf ("cem mil, ");break;
        case 6:printf ("cem mil, ");break;
        case 7:printf ("cem mil, ");break;
        case 8:printf ("cem mil, ");break;
        case 9:printf ("cem mil, ");break;
        default :printf ("Valor invalido!\n");
    }
    system("PAUSE");
        return 0;
}//main

minha duvida esta no uso de numero[0][0]

obrigado desde ja

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
switch (numero[0])
{
 case '1': printf ("cem mil, "); break;
 case '2': printf ("cem mil, "); break;
 //...
}

Não seria melhor usar um if ao invés de switch, independente do número a mensagem será a mesma: "cem mil".

#include <stdio.h>

int funcao (char *str)
{
    if ((str[0] < 1) || (str[0] > 9))
        return 0;
    else
        return 1;
}

int main(void)
{
    char *valor;
    printf("Digite um valor: ");
    fgets(valor, 8, stdin);

    if(!funcao(valor))
        printf("Cem Mil!");
    else
        printf("Valor Invalido!\n");
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

O tipo de numero é (char[8]) (vetor de 8 chars), portanto o tipo de &numero é (char (*)[8]) (ponteiro para vetor de 8 chars). O tipo esperado para o argumento correspondente ao especificador de formato % é (char *) (ponteiro para char), que, obviamente, não é equivalente ao (char (*)[8]) que você forneceu.

 

Supondo que este erro não tivesse sido cometido, e que numero contivesse valores válidos, o uso de O uso de numero[0][0] não tem mistério: pode gerar undefined behavior.

 

Sugiro que estude sobre ponteiros e arrays (nesta ordem), e faça perguntas específicas sobre eles, abordando os tópicos que não entender.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.