Ir ao conteúdo
  • Cadastre-se

Jose_Luiz

Membro Júnior
  • Posts

    13
  • Cadastrado em

  • Última visita

posts postados por Jose_Luiz

  1. 3 minutos atrás, devair1010 disse:

    @Jose_Luiz     qual posição ?

    Na vdd não é bem a posição, é quantidade de caracteres que vai ser concatenada da segunda palavra.

    Exemplo:

    1ª palavra: Viver   

    2ª palavra: Feliz 

    quantidade caracteres da 2ª palavra a serem concatenada: 2 

    Nova palavra: ViverFe

    ou seja imprimir a concatenação da segunda palavra somente a quantidade caracteres  informada.

    • Amei 1
  2. 19 horas atrás, devair1010 disse:

    @Jose_Luiz     sem usar a biblioteca string e nenhuma função dessa biblioteca , seu código poderia ser assim  :

    
    #include <stdio.h>
    #define NOME 1
    #define CHAR 50
    char    *concatena(char *a,char *b);
    int main(){
        char nome[NOME][CHAR], sobrenome[NOME][CHAR];
        int i;
        char *res;
        for( i=0; i<NOME; i++ )
        {
            printf("\nDigite o nome %d: \n", i);
            scanf(" %[^\n]s",nome[i]);
        }
        for( i=0; i<NOME; i++ )
        {
            printf("\nDigite o sobrenome %d: \n", i);
            scanf(" %[^\n]s",sobrenome[i]);
        }
        res = concatena(nome[0],sobrenome[0] );
        printf("A Variavel Retornada => %s\n\n",res/*Variavel*/);
        return 32768;
    }
    char       *concatena(char *a,char *b)
    {
        int ta=0,tb=0,w;
        for(w=0;a[w]!='\0';w++)ta++;
        for(w=0;b[w]!='\0';w++)tb++;
        char *c;
        c = malloc(ta+tb+1);
        for(w=0;w<ta;w++)c[w] = a[w];
        for(;w<(ta+tb);w++)c[w] = b[w-ta];
        c[w] = '\0';
        return c;
    }

     

    Nesse caso ainda faltou informa a posição em que essa string será concatenada!

    19 horas atrás, Jose_Luiz disse:

    você incluiu ponteiros e alocação de memória. Obrigado!! Para fins de estudos e aprofundamento está excelente!! 

    Nesse caso ainda faltou informa a posição em que essa string será concatenada!

    • Obrigado 1
  3. 4 minutos atrás, devair1010 disse:

    @Jose_Luiz     sem usar a biblioteca string e nenhuma função dessa biblioteca , seu código poderia ser assim  :

    
    
    #include <stdio.h>
    #define NOME 1
    #define CHAR 50
    char    *concatena(char *a,char *b);
    int main(){
        char nome[NOME][CHAR], sobrenome[NOME][CHAR];
        int i;
        char *res;
        for( i=0; i<NOME; i++ )
        {
            printf("\nDigite o nome %d: \n", i);
            scanf(" %[^\n]s",nome[i]);
        }
        for( i=0; i<NOME; i++ )
        {
            printf("\nDigite o sobrenome %d: \n", i);
            scanf(" %[^\n]s",sobrenome[i]);
        }
        res = concatena(nome[0],sobrenome[0] );
        printf("A Variavel Retornada => %s\n\n",res/*Variavel*/);
        return 32768;
    }
    char       *concatena(char *a,char *b)
    {
        int ta=0,tb=0,w;
        for(w=0;a[w]!='\0';w++)ta++;
        for(w=0;b[w]!='\0';w++)tb++;
        char *c;
        c = malloc(ta+tb+1);
        for(w=0;w<ta;w++)c[w] = a[w];
        for(;w<(ta+tb);w++)c[w] = b[w-ta];
        c[w] = '\0';
        return c;
    }

     

    você incluiu ponteiros e alocação de memória. Obrigado!! Para fins de estudos e aprofundamento está excelente!! 

    • Obrigado 1
  4. Criar uma função que recebe duas strings e um inteiro n como parâmetro e retorna uma nova string formada pela concatenação da primeira string com os
    primeiros n caracteres da segunda string.

     

    #include <stdio.h>
    #include <assert.h>
    #include<stdlib.h>
    #include<string.h>
    
    //
    // Função  duas string
    //
    
    void contatenarStrings (char  string1[], char string2[], int pos);
    
    int main(void){
     char lastName[20];
     char firstName[20];
     
     int pos;
     
     
     scanf("%s", firstName);
     scanf("%s", lastName);
     scanf("%d", &pos);
      contatenarStrings(firstName, lastName, pos);
     printf("%s\n", firstName);
     return 0;
    }
    
    void contatenarStrings (char  string1[], char string2[], int pos)
    {    
        char tmp[20];
        strncpy(tmp, string1, pos);
        strcat(tmp, string2);
        strcat(tmp, &string1[pos]);
        strcpy(string1, tmp);
    }
    
    Fonte: https://www.clubedohardware.com.br/forums/topic/1383163-montar-duas-string-que-chame-a-outra-o-ru-sera-8/

     

    Como ficaria essa função(contatenarStrings) sem usar funções prontas da bibliotega string

     

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #define NOME 1
    #define CHAR 50
    
    void concatena  (char a[], char b[])
    {
     printf("%s %s\n\n", a, b);  
    }
    
    
    int main()
    {
         
         
        char nome[NOME][CHAR], sobrenome [NOM][CHAR];
        int i, encontrou = 0;
    
        for (i = 1; i <= NOME; i++)
        {
            printf("\nDigite o nome %d: \n", i);
            scanf(" %[^\n]s",nome[i]);
        }
       
           for (i = 1; i <= NOME; i++)
        {
            printf("\nDigite o sobrenome %d: \n", i);
            scanf(" %[^\n]s",sobrenome[i]);
        }
       
           printf("\n\n\n");
          
         for (i = 1; i <= NOME; i++)
        {
            concatena(nome [i], sobrenome [i]);
        }
    
        printf("\n\n\n");
      
     
     }
                             
      

    Desse jeito eu consigo concatenar, mais não entendi bem a lógica do N inteiro.

    • Obrigado 1
  5. 3 horas atrás, Jose_Luiz disse:

     

     

    
    #include <stdio.h>
    
    float potencia(float base, int expoente);
    int main(){
      
    float bas, resultado; 
    int exp;
     printf("Digite a base: ");
     scanf("%f", &bas);
    
     printf("Digite o expoente: ");
     scanf("%d", &exp);
    
     resultado = potencia(bas, exp);
    
     printf("%f elevado %d eh igual a %f\n", bas, exp, resultado);
     return 0;
    }
    float potencia(float base, int expoente){
     int temporaria, i;
     temporaria = 1; // atribui o primeiro valor para tmp
    
    while(i < expoente){
      temporaria = temporaria * base;
      i++;
     }
     return temporaria ;
    }
    
    // Corrigido

     

    Acho que é isso, mais ainda falta imprimir todas as potencias do intervalo 2^0; 2^1; :::; 2^10; 3^0; :::; 3^10; :::; 10^10.

     

    2 horas atrás, Midori disse:

     

    Depois das correções apontadas pelo @V!OLADOR, crie um loop que vai de 2 até 10 para exibir todas esses potências. Com duas variáveis faça os incrementos no loop para passar os valores delas como argumento da sua função potencia.

     

    int i = 2;

    while(i <=10)

    ......

    i++;

     

    realmente não estou sabendo implementar essa parte!!

  6. 3 horas atrás, V!OLADOR disse:

     

    Mas por que? você fez quase tudo certo. Basta substituir 2 por a, como pediu a questão. E mover o calculo pra uma função uma própria independente da main. Algo como,

     

    
    float my_pow(const float a, const int n)

     

    Apenas lembre-se de que pot deve ser real, float ou double.

     

    #include <stdio.h>
    
    int potencia(int base, int expoente);
    int main(){
      
    int bas, exp, resultado;
     printf("Digite a base: ");
     scanf("%d", &b);
    
     printf("Digite o expoente: ");
     scanf("%d", &e);
    
     resultado = potencia(bas, exp);
    
     printf("%d elevado %d eh igual a %d\n", bas, exp, resultado);
     return 0;
    }
    int potencia(int base, int expoente){
     int temporaria, i;
     temporaria = 1; // atribui o primeiro valor para tmp
    
    while(i < expoente){
      temporaria = temporaria * base;
      i++;
     }
     return temporaria ;
    }

     

    Acho que é isso, mais ainda falta imprimir todas as potencias do intervalo 2^0; 2^1; :::; 2^10; 3^0; :::; 3^10; :::; 10^10.

  7. Escreva uma função que computa a potência a^b para valores a (real) e b (inteiro) passados por parâmetro sem usar a função pow. Use a função anterior e crie um programa que imprima todas as potências: 2^0; 2^1; :::; 2^10; 3^0; :::; 3^10; :::; 10^10.

    #include <stdio.h>
    int main(){
    int i, n, pot;
    scanf("%d",&n);
    pot = 1;
    i = 0;
    
    while(i <= n){
    printf("2^%d = %d\n",i,pot);
    pot = pot *2;
    
    i++;
    }
    
    }

    só consegui calcular imprimir a potências de 2
    Saída:
    10
    2^0 = 1
    2^1 = 2
    2^2 = 4
    2^3 = 8
    2^4 = 16
    2^5 = 32
    2^6 = 64
    2^7 = 128
    2^8 = 256
    2^9 = 512
    2^10 = 1024


    Esperado:
    de 2^0....  até ......10^10.

     

    Algum help?


     

     

     

    • Triste 1
  8. Escreva um programa que leia um número inteiro N fornecido pelo usuário e imprima um quadrado de N linhas e N colunas onde na linha i e coluna j seja impresso o valor
    1 caso i e j sejam coprimos e 0 caso contrario. Com saída esperada. 

    Exemplo de números coprimos 15 e 8 são coprimos (ou primos entre si) pois os divisores de 8, que são 2,
    4 e 8, não são divisores de 15.

     

    Alguma dica como inicia esse programa?

     

    image.png.e3ea24e2fc942351f080f7cd4b36ff30.png

    • Obrigado 1
  9.  

     

    #include <stdio.h>
    #include<stdlib.h>
    
    int main(void) {
      int N = 6;
      int i, j, c = 0;
      for (i=1; i <=N; i++){
        for(j=1; j<= i; j++){
          c++;
          printf("%d ",c);
        }
        printf("\n");
      }
      system("pause");
      return 0;
    }
    // Esse exemplo me deu a saida a baixo
    #include <stdio.h>
    #include<stdlib.h>
    
    int main(void) {
      int N = 6;
      int i, j, c = 0;
      for (i=1; i <=N; i++){
        for(j=1; j<= i; j++){
          c++;
          printf("%d ",c);
        }
        printf("\n");
      }
      system("pause");
      return 0;
    }
    
    /*
    1 
    2 3 
    4 5 6 
    7 8 9 10 
    11 12 13 14 15 
    16 17 18 19 20 21 
    */

     

    No caso na segunda eu quero essa saída:

    Saída esperada:

    1
    1 2
    1 2 3
    1 2 3 4
    1 2 3 4 5
    1 2 3 4 5 6

    @KXSY A primeira sim, a segunda é sequência de números a saída esperada.

    • Obrigado 1
  10. Obrigado, a primeira consegui, falta a segunda!!

    Em 08/10/2020 às 08:46, Jose_Luiz disse:

    1 - Criar programa em C que leia um numero N e imprima N linhas na tela com o seguinte
    formato (exemplo se n = 6):

    Saída esperada:

    + * * * * *
    * + * * * *
    * * + * * *
    * * * + * *
    * * * * + *
    * * * * * +

    Solução possível

    Fonte: https://sites.google.com/a/liesenberg.biz/cjogos/home/materiais-de-apoio/topicos-relativos-a-c/estruturas-basicas-de-controle/linhas-com-asteriscos

     

    
     #include <stdio.h>
    
     int main(void) {
    
    int i, j, n, m;
    
     scanf("%d %d", &m, &n);
    
     for (i = 1; i <= m; i = i + 1)  {
    
     for (j = 1; j <= n; j = j + 1)
    
    printf("*");
    
    printf("\n");  }
    
    return 0;  }

     

    2 - Criar um programa que leia um numero N e imprima N linhas na tela com o seguinte
    formato (exemplo se n = 6)

    Saída esperada:

    1
    1 2
    1 2 3
    1 2 3 4
    1 2 3 4 5
    1 2 3 4 5 6

     

    Solução possível

    Fonte: https://sites.google.com/a/liesenberg.biz/cjogos/home/materiais-de-apoio/topicos-relativos-a-c/estruturas-basicas-de-controle/triangulo-de-asteriscos

     

    
    #include <stdio.h>
        
        int main(void)
        {
            int m, i, j;
            scanf("%d", &m);
            for (i = 1; i <= m; i = i + 1)
            {
               for (j = 1; j <= i; j = j + 1) 
               putchar('*');
               putchar('\n');
           }
          return 0;
       }

     

    Eu entendo com criar a estrutura, mas não como imprimir no formato que pedi.

    Alguém pode dá help para imprimir saída correta?

     

    //Solução da questão 1
    
    #include <stdio.h>
    
     int main(void) {
    
    int i, j, n, m;
    
     scanf("%d %d", &m, &n);
    
     for (i = 1; i <= m; i = i + 1)  {
    
     for (j = 1; j <= n; j = j + 1)
        if(j== i)
          printf("+");
        else
          printf("*");
    
    printf("\n");  }
    
    return 0;  }

     

    • Curtir 1
  11. 1 - Criar programa em C que leia um numero N e imprima N linhas na tela com o seguinte
    formato (exemplo se n = 6):

    Saída esperada:

    + * * * * *
    * + * * * *
    * * + * * *
    * * * + * *
    * * * * + *
    * * * * * +

    Solução possível

    Fonte: https://sites.google.com/a/liesenberg.biz/cjogos/home/materiais-de-apoio/topicos-relativos-a-c/estruturas-basicas-de-controle/linhas-com-asteriscos

     

     #include <stdio.h>
    
     int main(void) {
    
    int i, j, n, m;
    
     scanf("%d %d", &m, &n);
    
     for (i = 1; i <= m; i = i + 1)  {
    
     for (j = 1; j <= n; j = j + 1)
    
    printf("*");
    
    printf("\n");  }
    
    return 0;  }

     

    2 - Criar um programa que leia um numero N e imprima N linhas na tela com o seguinte
    formato (exemplo se n = 6)

    Saída esperada:

    1
    1 2
    1 2 3
    1 2 3 4
    1 2 3 4 5
    1 2 3 4 5 6

     

    Solução possível

    Fonte: https://sites.google.com/a/liesenberg.biz/cjogos/home/materiais-de-apoio/topicos-relativos-a-c/estruturas-basicas-de-controle/triangulo-de-asteriscos

     

    #include <stdio.h>
    
    int main(void) {
    
    int m, i, j; 
    
    scanf("%d", &m); 
    
    for (i = 1; i <= m; i = i + 1) 
    
    { 
    
    for (j = 1; j <= i; j = j + 1)
    
    printf('*'); 
    
    printf('\n'); 11 } 
    
    return 0; }

     

    Eu entendo com criar a estrutura, mas não como imprimir no formato que pedi.

    Alguém pode dá help para imprimir saída correta?

    • Curtir 1

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

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!