Ir ao conteúdo
  • Cadastre-se

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


Posts recomendados

#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;
}

Link para o comentário
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.

Link para o comentário
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
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber 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...