Ir ao conteúdo

Posts recomendados

Postado
/*4) Uma loja de tintas oferece 100 cores aos clientes, como VERDE-LIMÃO,
AMARELO-OURO, AMARELO-CANÁRIO, etc. Faça um algoritmo para ler um
vetor com os 100 nomes de cores, e depois informe se existe a cor “AZULCOBALTO” dentro do vetor. Se não existir, exiba uma mensagem “COR NÃO
ENCONTRADA”.*/

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

int main()
{

    char cores[21];

    for (int i = 0; i < 20; ++i)
    {
        printf("Digite a %d cor: \n", i+1);
        scanf("%s", cores[i]);
    }
    

    return 0;
}

não entendi esse exercício de vetor, não entendi como faço para criar um vetor para receber vários nomes e armazenar para depois comparar, essa e a pergunta: 

Uma loja de tintas oferece 100 cores aos clientes, como VERDE-LIMÃO,
AMARELO-OURO, AMARELO-CANÁRIO, etc. Faça um algoritmo para ler um
vetor com os 100 nomes de cores, e depois informe se existe a cor “AZULCOBALTO” dentro do vetor. Se não existir, exiba uma mensagem “COR NÃO
ENCONTRADA”. 

  • Obrigado 1
Postado
/*
   4) 
   Uma loja de tintas oferece 100 cores aos clientes, como VERDE-LIMÃO,
   AMARELO-OURO, AMARELO-CANÁRIO, etc. Faça um algoritmo para ler um
   vetor com os 100 nomes de cores, e depois informe se existe a cor “AZULCOBALTO” 
   dentro do vetor. Se não existir, exiba uma mensagem “COR NÃO
   ENCONTRADA”.
*/

#include <stdio.h>
#include <string.h>
int main()
{
    char cores[21][50];                      /// um par de colchetes para a qtd
                                             /// de nomes e outro para a qtd de 
                                             /// caracteres de cada nome
    for (int i=0; i<20; i++)
    {
        printf("Digite a %d cor: ", i+1);    /// fgets pega a linha toda até o 
                                             /// newLine  , tecla Enter
        fgets(cores[i] , 49 , stdin );       /// scanf só pega os caracteres que estejam juntos
                                             /// até encontrar um espaco em branco
        cores[i][strlen(cores[i] - 1 ] = 0;  /// remover o newLine pego por fgets
    }
    return 0;
}

@Edinei Almeida

um vetor de string tem quatro colchetes , um par para a qtd de nomes e outro par para a qtd de caracteres de cada nome

 

Postado

@Edinei Almeida    seu código  com algumas modificações 

#define _WIN32_WINNT 0x600
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
#include <string.h>
#include <windows.h>
/*
   4)
   Uma loja de tintas oferece 100 cores aos clientes, como VERDE-LIMÃO,
   AMARELO-OURO, AMARELO-CANÁRIO, etc. Faça um algoritmo para ler um
   vetor com os 100 nomes de cores, e depois informe se existe a cor “AZULCOBALTO”
   dentro do vetor. Se não existir, exiba uma mensagem “COR NÃO
   ENCONTRADA”.
*/

int prototipo(int , int , int* );
int main()
{
  HANDLE _h = GetStdHandle(STD_OUTPUT_HANDLE);
  SetConsoleTextAttribute( _h , 15 + (12 << 4 ) );
  int i,flg = 0;
  char aux[][50] = {"VERDE-LIMAO","AMARELO-OURO", "AMARELO-CANARIO","AZULCOBALTO"};
  char cores[100][50];                     /// um par de colchetes para a qtd
                                           /// de nomes e outro para a qtd de
                                           /// caracteres de cada nome
  srand(time(NULL));
  for(i=0; i<100; i++)
    strcpy(cores[i] , aux[ rand() % 4 ]);
  for ( i=0; i<2; i++)
  {
      printf("Digite a %d cor: ", i+1);    /// fgets pega a linha toda até o
                                           /// newLine  , tecla Enter
      fgets(cores[i] , 49 , stdin );       /// scanf só pega os caracteres que estejam juntos
                                           /// até encontrar um espaco em branco
      cores[i][strlen(cores[i]) - 1 ] = 0; /// remover o newLine pego por fgets
      printf("  Cor %s  \n",cores[i]);     /// testar se esta de acordo com o esperado
  }
  ///  pesqisar
  printf("\n\n");
  for(i=0; i<100; i++)
  {
    printf("  Cor %d %s  \n",i,cores[i]);
    if(strcmp( cores[i] , "AZULCOBALTO" ) == 0 )
    {
      flg = 1;
      break;
    }
  }
  if( ! flg )
    printf("\nCOR não ENCONTRADA");
  else
    printf("\nA COR ""AZULCOBALTO"" EXISTE NO VETOR");
  SetConsoleTextAttribute( _h , 7 + ( 0 << 4 ) );
  printf("\n\n\n");
  return 0;
}
int prototipo(int a , int b , int* c )
{
  return 0;
}

 

  • 1 ano depois...
Postado
Em 16/06/2022 às 16:44, Edinei Almeida disse:

@devair1010 no caso voce criou uma matriz de strings ? e isso ?

 

Em 16/06/2022 às 16:48, devair1010 disse:

@Edinei Almeida    não  ,aí é um vetor de string's 

e uma matriz seria isso:

char cores[21][2][50];  /// 21 linhas e duas colunas com nomes de até 49 caracteres cada
                        /// e seria no total 21 * 2 nomes = 42 nomes de 49 caracteres

 

 

Hoje tenho uma filosofia diferente.

 

Na C, string é um valor como texto, e não um tipo como int. Ou seja, a string “Hello W...” está para char [] da mesma maneira que 2022 está para int.

 

Sei que parece tolice, mas, “de” e “para”, essas palavras que mudam o significado têm capacidade para cortar o raciocínio.

 

 

 

E a pergunta foi: como 'criar' um vetor para receber varias strings?

 

Suponho que para você existiu a opção estática, nela, declare-se o seu comprimento, depois declarem-se variáveis da definição. Deste modo, o processo ficaria um pouquinho mais documental.

 

Assim:


#include <stdio.h>

typedef char Tinta [128];
int main ()
{
  Tinta paleta [132];/* Cores ... */
  /* ... */
}

 

 

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