Ir ao conteúdo

Posts recomendados

Postado

<CODE>

 

//eu preciso fazer um codigo que leia uma qtd de casos de testes e com isso imprimir a qtd dos caracters

//que se repetem nele, do mesmo jeito que coloquei na saida, exibindo todo o alfabeto um do lado do outr

 

#include <stdio.h>
#include <string.h>
#include <conio.h>
 
int main(){
   
   char string[100];
   int i=0, c=0, count[26] = {0};
   int m, t=0, tam=0;

   
    scanf ("%d", &t);
    
    for (i=0; i<strlen(string); i++){
    
    }
        
    if ((1 <= t) || (t <= 10000)){
        
        for (i=0; i<=t; i++){
        gets(string);
        }
    }
                                                             //NO meu código ele só conta UMA linha dos casos de testes, não 
                                                            //consigo fazer com q ele conte TODOS os casos de testes    
    while (string[c] != '\0') {
      
        if (string[c] >= 'a' && string[c] <= 'z' ){
        count[string[c]-'a']++;
        c++;
        }
    }

    for (c = 0 ; c < 26 ; c++){
        printf("%d ", count[c]);            //quero q ele exiba um do lado do outro,mostrando todo o alfabeto e a sua qtd de caracteres
        }
   
    return 0;
}
 

  • Curtir 2
Postado

Não entendi o que você quer. Seria isso:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>

int main() {
    char string[100];
    int lookUpTable[255];
    
    // Inicia a tabela
    for (int i = 0; i < 255; ++i) {
        lookUpTable[i] = 0;
    }
    
    // Pega a string do usuario
    printf("Digite uma palavra: ");
    scanf(" %[^\n]", string);
    
    // Realiza a contagem de letras
    for (int i = 0; i < strlen(string); ++i) {
        lookUpTable[string[i]] += 1;
    }
    
    // Exibe tudo
    for (int i = 'a'; i <= 'z'; ++i) {
        printf("%c - %2i \t %c - %2i \n", i, lookUpTable[i], _toupper(i), lookUpTable[_toupper(i)]);
    }
    
    return EXIT_SUCCESS;
}

 

  • Curtir 2
Postado

@AdrianoSiqueira

kkkkkkk acho que não fui muito claro, vou tentar explicar de novo amigo,

A primeira linha da entrada contém um número inteiro t, que seria o número de casos de teste. Logo em baixo tem a primeira linha de cada caso de teste contém dois números inteiros N e M. tendo N como COMPRIMENTO de S e M o número de TENTATIVAS correspondentes. A segunda linha de cada caso de teste contém a sequência s que consiste em n letras do alfabeto. A terceira linha de cada caso de teste contém m números inteiros a1, a2, ..., am tal que  o número de caracteres PRECIONADOS durante cada 1 tentativa. é isso o que eu tenho que fazer 

Então ficaria mais ou menos assim 

Entrada  --  Saída 

1

4 2              4 2 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

abca

13

Ficaria assim, no meu eu nao estou conseguindo ler os casos de testes, que teria quue ler esse "abca" duas vezes e marcar quantas vezes as letras se repetem, ele le so uma vez...Nao sei se ficou meio claro mas é isso, Obrigado pela atençao

adicionado 0 minutos depois

@Mauro Britivaldo

Ai ai esse ta difícil ksksksks, respondi ali em cima amigo da uma olhadinha pra ver se entende mais ou menos

  • Curtir 1
Postado

@AdrianoSiqueira claroo, vou tentar colar aqui

Essa é uma tarefa do meu prof de banco de dados, que esta quebrando minha cabeça, queria muito tentar entender mais ou menos a parte do codigo mesmo, porque a logica eu sei mais ou menos como é, mas nao consigo colocar o que eu sei no codigo :( 

Da pra ter uma pequena noção pelo meu codigo que fiz ate agora, uma parte do exerciio

Exercicio Interediario Banco de dados.pdf

  • Curtir 1
  • Obrigado 1
Postado
18 horas atrás, Matheus.gabriel_ disse:

1

4 2       

abca

1 3

 

É fácil, primeiro leia t, depois um loop de 0 ate t   lê 2 inteiros m,n em que 

m é tamanho do vetor_s VLA e conseguinte lê m caracteres pra o vetor_s, agora use um loop de 0 até m para realizar essa leitura enquanto contabiliza no vetor_alfabético cada caracter lido, em outro loop aninhado ao primeiro de 0 ate n lê 1 inteiro de nome  am, esse inteiro é o limite da subsequência de s, um loop aninhado a esse de 0 até am contabiliza no vetor_alfabético todos os caracteres.

 

Por último, e ainda dentro do primeiro loop t, um loop de 0 até 26 imprime e reinicia o vetor_alfabético caso precise para  teste seguinte.

 

😉 Tendeu ?

 

  • Curtir 1
  • Amei 1
Postado

O nível é dos mais básico. Você vai encontrar aqui no fórum membros que depois de muito "blablabla" dá uma resposta no final... 

 

Só aguarde

😆

  • Curtir 1
  • Triste 1
Postado

Dá colher de chá, esse é uma solução para nosso problema com interrogações (??) que precisam ser substituídas para acerta o código.

 

#include <stdio.h>
int main (void){
  unsigned int t = 0, alfab[26] = {0}; 
  scanf (" %u", &t); 
  // Primeiro leia t ...

  for (unsigned int i = 0; i < ??; ++i){
  // Depois um loop de 0 ate t lê 2 inteiros m,n em que 
    unsigned int m, n;
    scanf (" %u%u", &m, &n);

    char s[m]; // m é tamanho do vetor_s VLA
    for (unsigned int j = 0; j < ??; ++j){
    // e conseguinte lê m caracteres pra o vetor_s ...
      char ch;
      scanf (" %c", &ch);

      s[j] = ch;
      ++alfab[(ch) - 'a'];
      // enquanto contabiliza no vetor_alfabético cada caracter lido
    }
    for (unsigned int k = 0; k < ??; ++k){
    // Em outro loop aninhado ao primeiro de 0 até n
      unsigned int am;
      scanf (" %u", &am);
      //  lê 1 inteiro de nome  am

      for (unsigned int a = 0; a < ??; ++a){
      // um loop aninhado a esse de 0 até am ...
        ++alfab[s[a] - 'a'];
        // contabiliza no vetor_alfabético todos os caracteres
      }
    }
    for (unsigned int p = 0; p < ??; ++p){
    // Por último, e ainda dentro do primeiro loop t, um loop de 0 até 26 ...
      printf ("%u ", alfab[??]);
      // imprime
      alfab[??] = 0;
      // e reinicia o vetor_alfabético caso precise para  teste seguinte.
    }
  }
  return 0;
}	

 

 

Agora, será que vai ?

  • Curtir 1
  • Obrigado 1

Crie uma conta ou entre para comentar

Você precisa ser um usuário 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 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...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!