Ir ao conteúdo

Posts recomendados

Postado

Preciso de um código que o usuário digite o tamanho de uma matriz e depois essa matriz é preenchida com caracteres(char)  aleatórios. Logo em seguida conte o número de vogais. Em c.

  • Obrigado 1
Postado

@murilop.s      depois de criar a matriz use o comando   num = rand ()%26+65; que vai gerar numeros nesse intervalo ,de 65 ate 90 , que cujo valor eh o correspondente codigo ASCII das letras maiusculas de A ate Z, e para colocar na matriz voce faz a conversao de inteiro para char com um  cast   assim    matriz[ linha ][ coluna ] = (char) num;

  • Curtir 1
  • 4 anos depois...
Postado

Boa Dia!

 

Uma análise

Em 16/09/2019 às 14:07, murilop.s disse:

¹O usuário digite o tamanho de uma matriz e depois essa ²matriz é preenchida com caracteres(char)  aleatórios

 

Tamanho

¹        Não existe 'o tamanho de uma matriz' em linguagem c, o que acertadamente existem são abstrações como o tamanho de uma matriz, são configurações limitadas de modo que é um risco defina-las com base exclusivamente no que o usuário digita.

 

Aleatório

²        Já na declaração ela é aleatória, haja vista que supostamente os seus usuários declaram o seu tamanho com base em critério nenhum: que depende das circunstâncias, casualmente, cujo a definição está num espaço da memória repleta (ou não) de configurações binárias acidentais.

 

 

Logo,

sendo um exercício para iniciante das matrizes, e a partir da solução no post#2

Em 16/09/2019 às 14:07, murilop.s disse:

Logo em seguida conte o número de vogais. Em c.

 

 

Tenho por exemplo,

 

c'11  - gcc'11.4

/* ... */
#include <ctype.h> /* ...                              tolower  () */
#include <stdlib.h>/* ...                                  rand () */
#include <stdio.h> /* Include the header file for input and output */
int main (void) {
/* ler e declarar tamanho */
  size_t col= 1; (void) scanf ("%zu",&col);
  size_t lin= 1; (void) scanf ("%zu",&lin);
  size_t const LIMIT= 100UL;
/* definir e atribuir cordas pseudoaleatórias */
  char A[lin%= LIMIT][col%= LIMIT];
  printf ("%s%zu%c%zu%c","... declarou-se: ",lin,'x',col,'\n');
  for (size_t ai= 0 ; lin>ai ; ++ai)
  for (size_t aj= 0 ; col>aj ; ++aj) {
      int num= rand ()% 26+ 65;
      A[ai][aj]= (char) num;
    }
/* calcular suas vogais */
  int a ,e ,i ,o ,u ,outros= 0;
  a= e= i= o= u= 0;
  for (size_t ai= 0 ; lin>ai ; ++ai)
  for (size_t aj= 0 ; col>aj ; ++aj) {
      int r= tolower (A[ai][aj]);
      switch (r) {
        case'a': ++a; break;
        case'e': ++e; break;
        case'i': ++i; break;
        case'o': ++o; break;
        case'u': ++u; break;
        default: ++outros; break;
        }}
/* produzir soma no simulador */
  int soma= a+ e+ i+ o+ u;
  printf ("%s%d%c","soma é: ",soma,'\n');
  return 0;
  }

 

 

e talvez ainda,

 

/* calcular suas vogais */
  int h[255]= {0};
  for (size_t ai= 0 ; lin>ai ; ++ai)
  for (size_t aj= 0 ; col>aj ; ++aj)
     ++h[tolower (A[ai][aj])];
/* produzir soma no simulador */
  int soma= h['a']+ h['e']+ h['i']+ h['o']+ h['u'];
  printf ("%s%d%c","soma é: ",soma,'\n');

 

...

  • Obrigado 1
Postado

Desconheço, mas, talvez em circuito,

 

/* calcular suas vogais */
  int a ,e ,i ,o ,u;
  a= e= i= o= u= 0;
  for (size_t ai= 0 ; lin>ai ; ++ai)
  for (size_t aj= 0 ; col>aj ; ++aj) {
      int  r=  tolower (A[ai][aj]);
      a+= (r=='a');
      e+= (r=='e');
      i+= (r=='i');
      o+= (r=='o');
      u+= (r=='u');
      }
/* produzir soma no simulador */
  int soma= a+ e+ i+ o+ u;
  printf ("%s%d%c","soma é: ",soma,'\n');

 

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