Ir ao conteúdo
  • Cadastre-se
Pedro Henrique Faria Teixe

Exercicios que me retorna o valor do p-ésimo numero na string

Recommended Posts

#include <stdio.h>
#include <math.h>
#include <string.h>
#include <stdlib.h>
int p_num(int p,char str[]){
    int i,cout = 0,aux = -1;

              gets(str);
            for(i=0;str!='\0';i++){
if(str == '0' ||str == '1' || str == '2'|| str == '3'|| str == '4'|| str == '5'|| str == '6'|| str == '7'|| str == '8'|| str == '9'){
       p++;
str = str[p];
                }
            }
        if(p) printf("%s\n",str[p]);
        else if(p<=0) printf("%d\n",aux);

}
int main()
{
    char s[10];
    int i,j,k;

i = p_num(1,s);
j = p_num(2,s);
k = p_num(3,s);
printf("%d\n",i);
printf("%d\n",j);
printf("%d\n",k);


    return 0;
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia @Pedro Henrique Faria Teixe

Não consegui ver a tarefa por trás do código. Como quero ajudar te, preciso que você além do código poste também a descrição do problema. Somente assim vou ter elementos suficientes para auxiliar no teu exercício.

 

 

Obrigado 

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Mauro Britivaldo

Em C, desculpa =) 

P12. Cadê o n-ésimo número? Seja s uma cadeia de caracteres, tal que cada caractere é um símbolo da tabela ASCII. Seja p > 0, o número que corresponde à posição ordinal de um número n   em s. Construa em linguagem C uma função denominada (p_num) que retorna o p-ésimo n contido em s. Essa função deve receber p e s como parâmetros, e retornar n, se este número existir em s. Caso contrário, essa função deve retornar –1. Observe o exemplo seguinte. Considere que s contém a cadeia de caracteres abaixo: Considere também que a função se chame p_num, e as seguintes chamadas à mesma: 1. i = p-num (1,s); 2. j = p-num (2,s); 3. k = p-num (3,s). Eu nasci em 4 de setembro de 1958. p = 1 p = 2 Programação Procedimental 5 Assim sendo, no caso 1, i deverá ser igual a 4, pois 4 é o primeiro número (p = 1) em s. No caso 2, j deverá ser igual a 1958, pois este é o segundo número (p = 2) em s. No caso 3, k deverá ser igual a –1, pois não existe um terceiro número (p = 3) em s. Construa o programa principal. Declare as variáveis necessárias, colocando os comentários apropriados. Realize a chamada do procedimento cujo nome é p_num. Apresente os resultados obtidos na tela.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Muito bem colega@Pedro Henrique Faria Teixe

Trata-se de um exercício que envolve muitos elementos básicos da linguagem.

Como acha mais simples posta o código que o algoritmo e tento em vista que o exercício

pede o manual trace do código, vou lhe postar o código crú, cabendo a você fazer a 2ª

parte do exercício, aconselho a fazer ou não haverá construção de conhecimento algum 

de sua parte. 

Boa Sorte.

 

#include <stdio.h>
int is_numeric( char c );
int s_to_int(char *str );
int p_num( char *string,unsigned int pos );
int main( void )
{
  printf("N:= %d ", p_num( "Test 1985, Test 2016, Test 1980: Manual Trace", 3 ) );

  return 0;
}


int is_numeric( char c )
{
  return( c <= '9' && '0' <= c );
}
int s_to_int( char *str )
{
  int num = 0;
    while( *str && is_numeric( *str ) )
    {
      num = 10 * num + ( *str - '0' );
      str++;
    }
  return num;
}
int p_num( char *string,unsigned int pos )
{
  while( *string )
  {
    if( is_numeric( *string ) )
    {
      if( !(--pos) )return s_to_int( string );
      else while( *string && is_numeric( *(++string) ) ) continue;
    }
    else ++string;
  }
  return -1;
}

 

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

De nada! Caso sinta a necessidade de perguntar, então pode fazer quantas perguntas quiser ok

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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

×