Ir ao conteúdo
  • Cadastre-se

paulo leal

Membro Júnior
  • Posts

    8
  • Cadastrado em

  • Última visita

posts postados por paulo leal

  1. Estou fazendo um programa para compara duas strings mas sem usar a função strcmp da biblioteca string. Eu tenho que fazer essa função usando ponteiro mas meu código esta dando um erro que eu não sei resolver 

    #include <stdio.h>
    
    int strcmp(const char* s1; const char* s2);
    
    int main (){
    	char* s1="abcde";
    	char* s2="ABCDE";
    	
    	if(strcmp(s1,s2)==0){
    		printf("As duas strings sao iguais\n");
    	}else{
    		printf("As duas strings sao diferentes\n");
    	}
    	
    	
    }
    int strcmp(const char* s1, const char* s2)
    {
      for ( ; *s1 == *s2; ++s1, ++s2) {
        if (*s1 == '\0') {
          return 0;
        }
      }
      if (*s1 < *s2) {
        return -1;
      }
      else {
        return +1;
      }
    }

    obs: estou começando agora a mexer em ponteiros. 

     

    estes são os erros que aparecem no compilador DEV-C++

     

    3    24    G:\atividade 06\questão 05.c    [Error] parameter 's1' has just a forward declaration

    3    5    G:\atividade 06\questão 05.c    [Warning] conflicting types for built-in function 'strcmp'

    G:\atividade 06\questão 05.c    In function 'main':

    9    5    G:\atividade 06\questão 05.c    [Error] too many arguments to function 'strcmp'

    3    5    G:\atividade 06\questão 05.c    [Note] declared here

    G:\atividade 06\questão 05.c    At top level:

    17    5    G:\atividade 06\questão 05.c    [Error] conflicting types for 'strcmp'

    3    5    G:\atividade 06\questão 05.c    [Note] previous declaration of 'strcmp' was here

    • Curtir 1
  2. @AnsiC eu fiz assim

    #include <stdio.h>
    #define MAX 1000
    
    int main(){
        int n[MAX];
        int aux,i,j,tam;
        printf("Digite um numero impar: ");
        scanf("%d",&tam);
        printf("preencha o vetor com %d numero\n",tam);
        for(i=0;i<tam;i++){
            scanf("%d",&n[i]);
        }
        aux=tam/2;
        printf("%3d\n",n[aux]);
        for(i=aux-1, j=aux+1; i>=0;i--, j++){
            printf("%2d",n[i]);
            printf("%2d\n",n[j]);
        }
        getchar();
        return 0;
    }

     

    • Curtir 1
  3. @Olinad212 valeu cara tai o código completo 

    #include <stdio.h>
    #define MAX 1000
    
    int main(){
        int n[MAX];
        int aux,i,j,tam;
        printf("Digite um numero impar: ");
        scanf("%d",&tam);
        printf("preencha o vetor com %d numero\n",tam);
        for(i=0;i<tam;i++){
            scanf("%d",&n[i]);
        }
        aux=tam/2;
        printf("%d\n",n[aux]);
        for(i=aux-1, j=aux+1; i>=0;i--, j++){
            printf("%d",n[i]);
       	printf("%d\n",n[j]);
        }
    }

     

    • Curtir 1
  4. Peça ao usuário que ele informe um valor impar que determinara o tamanho para um determinado vetor. Esse valor deve ser impar, caso o valor seja par peça que o usuário redigite o numero. Após saber o tamanho do vetor. Peça ao usuário que insira valores no vetor. Depois de preencher o vetor. Imprima-o para fora EX:

    4    5   6    8    0       A qui é um vetor preenchido de tamanho 5 apos preenchido deve mostrar do jeito que esta ai em baixo:

               6

             5  8

             4  0

    eu consequir fazer isso mas não dar certo

    #include <stdio.h>
    #define y 5
    
    int main(){
        int n[y]={4,5,6,8,0};
        int aux,i,j;
        aux=y/2;
        printf("%d\n",n[aux]);
        for(i=aux-1;i>=0;i--){
            printf("%d",n[i]);
            for(j=aux+1;j<7;j++){
                printf("%d",n[j]);
                printf("\n");
                break;
            }
        }
        getchar();
    }

    execução

    6

    58

    48

  5. @devair1010 Eu tava tentando aqui e conseguir resolver olha ai o codigo:

    #include<stdio.h>
    #include<string.h>
    
    int main ( ) {
        int tam, i, zero, aux;
        char entrada[10100], N;
        while ( 1 ) {
            scanf ( "%c\n", &N );
            scanf ( "%s", entrada );
            if ( N == '0' || strcmp ( entrada, "0" ) == 0 )
                return 0;
            tam = strlen ( entrada );
            aux = 1, zero = 0;
            for ( i=0; i<tam; i++ ) {
                if ( entrada[i] == '0' && zero == 2 )
                    printf ( "%c", entrada[i] );
                if ( entrada[i] != '0' && N!='0' && entrada[i] != N ) {
                    printf ( "%c", entrada[i] );
                    aux = 0;
                    zero = 2;
                }
            }
            if ( N!= '0' && aux == 1 && zero == 1 ) {
                printf ( "0" );
            }else if ( N!='0' && aux == 1 )
                printf ( "0" );
            puts ( "" );
            getchar();
        }
    }

     

    • Curtir 2
  6. O problema da revisão de contrato: Durante anos, todos os contratos da Associação de
    Contratos da Modernolândia (ACM) foram datilografados em uma velha máquina de
    datilografia. Recentemente Sr. Miranda, um dos contadores da ACM, percebeu que a
    máquina apresentava falha em um, e apenas um, dos dígitos numéricos. Mais
    especificamente, o dígito falho, quando datilografado, não é impresso na folha, como se a
    tecla correspondente não tivesse sido pressionada. Ele percebeu que isso poderia ter
    alterado os valores numéricos representados nos contratos e, preocupado com a
    contabilidade, quer saber, a partir dos valores originais negociados nos contratos, que ele
    mantinha em anotações manuscritas, quais os valores de fato representados nos contratos.
    Por exemplo, se a máquina apresenta falha no dígito 5, o valor 1500 seria datilografado no
    contrato como 100, pois o 5 não seria impresso. Note que o Sr. Miranda quer saber o valor
    numérico representado no contrato, ou seja, nessa mesma máquina, o número 5000
    corresponde ao valor numérico 0, e não 000 (como ele de fato aparece impresso).


    Faça um programa que recebe como entrada diversos valores de contrato, cada um em uma
    linha. Cada linha contém dois inteiros D e N (1 ≤ D ≤ 9, 1 ≤ N < 10100 ), representando,
    respectivamente, o dígito que está apresentando problema na máquina e o número que foi
    negociado originalmente no contrato (que podem ser grande, pois Modernolândia tem sido
    acometida por hiperinflação nas últimas décadas).
    O ultimo valor é seguido por uma linha que contém apenas dois zeros separados por
    espaços em branco, para representar o fim da entrada.


    Para cada caso valor da entrada o seu programa deve imprimir uma linha contendo um único
    inteiro V, o valor numérico representado de fato no contrato. Veja o exemplo de entrada e
    seguida a seguir.

    image.png.b9238e216fc00a48821d000a9c76920c.png

    alguém pode me ajudar com essa questão olha o que eu fiz

    #include <stdio.h>
    #include <string.h>
    
    int main() {
        char contrato[10100];
        int i,j,tecla,copia[10100];
        printf("Digite a tecla com defeito e o numero de contrato");
        scanf("%d",&contrato);
        for(i=0; i<strlen(contrato); i++){
            tecla=contrato[0];
            copia[i]=atoi(contrato);
            for(j=3; j<strlen(contrato); j++){
                if(tecla==copia[j]){
                    copia[j]=copia[j+1];
                    printf("%d",copia[j]);
                }
            }
        }
        getchar();
    }

    mas não da em nada

    • Curtir 2

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...