Jump to content
Sign in to follow this  
Poligno

Matrizes com caracteres(INICIANTE).

Recommended Posts

Olá pessoal,mais uma vez rsrs

 

Tenho que fazer um código que leia duas strings com 5 nomes cada uma,e escrever os nomes que aparecem em AMBAS as listas. Eu fiz o teste a mão no meu código e me parece tudo ok,porem quando vou executa-lo ele le apenas o primeiro nome da primeira stringa e imprime um monte de coisa aleatória na tela ,não sei onde estou errando, a baixo o meu código:

 

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

int main()
{
int i,j,k,l,cont,aux2,pos,cont2=0,cont3=0,sal[5],iaux;
char nom[5][50],nom2[5][50],aux[5][50];


printf("Digite os nomes da lista 1:\n");
for(i=0;i<5;i++){
scanf("%[^\n]s",nom);
}

printf("Digite os nomee da lista 2:\n");
for(i=0;i<5;i++){
scanf("%[^\n]s",nom2);
}


iaux=0;
for(i=0;i<5;i++){
for(j=0;j<5;j++)
if(strcmp(nom,nom2[j])==0){
strcpy(aux[iaux++],nom);
}
}


for(i=0;i<50;i++){
printf("Nome:%s\n",aux);

}


return 0;
}


Share this post


Link to post
Share on other sites

Se é pra escrever o nome que aparece em duas listas, por que você realiza cópia?
E aquele for indo até 50?

  • +1 1

Share this post


Link to post
Share on other sites

Se é pra escrever o nome que aparece em duas listas, por que você realiza cópia?

E aquele for indo até 50?

Sim,eu tinha notado esse erro depois que postei a dúvida e como e contra as regras postar em seguida como 'atualização' eu esperei uma resposta(da próxima vou conferir o código com mais atenção antes de postar a dúvida,peço desculpas.)

 

O código atualizado é o seguinte:

 

#include<stdlib.h>

#include<stdio.h>

#include<math.h>

#include<string.h>

 

int main()

{

int i,j,k,l,cont,cont2=0,iaux;

char nom[5][50],nom2[5][50],aux[5][50];

 

 

printf("Digite os nomes da lista 1:\n");

for(i=0;i<5;i++){

scanf("%s",nom);

}

 

printf("Digite os nomee da lista 2:\n");

for(i=0;i<5;i++){

scanf("%s",nom2);

}

 

iaux=0;

for(i=0;i<5;i++){

cont=0;

for(j=0;j<5;j++){

if(strcmp(nom,nom2[j])==0){

cont++;

}

}

 

if(cont==5){

strcpy(aux[iaux],nom);

iaux++;

cont2++;

}

}

 

 

for(i=0;i<cont2;i++){

printf("Nome:%s\n",aux);

 

}

 

 

return 0;

}

 

 

Share this post


Link to post
Share on other sites

Na verdade o postup proibido é quando vc quer evidenciar o tópico. Tipo aquela galera desesperada pra entregar uma lista com 50 exercícios que quer que outros escrevam código p/ eles passarem na matéria sem um mínimo de esforço.

  • +1 1

Share this post


Link to post
Share on other sites

Na verdade o postup proibido é quando você quer evidenciar o tópico. Tipo aquela galera desesperada pra entregar uma lista com 50 exercícios que quer que outros escrevam código p/ eles passarem na matéria sem um mínimo de esforço.

Entendi...mas quanto ao código,o que há de errado nele?

 

grato!

Share this post


Link to post
Share on other sites

 

#include <stdio.h>
#include <string.h>
 
int main(void) {
  char nomes_1[5][20] = {"luciano", "carlos", "alexandre", "marcelo", "lucas"};
  char nomes_2[5][20] = {"joão", "lucas", "fabiano", "marcelo", "fernando"};
 
  for (unsigned int i=0; i<5; i++) {
    for(unsigned int j=0; j<5; j++) {
       if (!strcmp(nomes_1[i], nomes_2[j])) {
          printf("%s\n", nomes_1[i]);
          break;
       }
    }
  }
  return 0;
}

Share this post


Link to post
Share on other sites

 

#include <stdio.h>
#include <string.h>
 
int main(void) {
  char nomes_1[5][20] = {"luciano", "carlos", "alexandre", "marcelo", "lucas"};
  char nomes_2[5][20] = {"joão", "lucas", "fabiano", "marcelo", "fernando"};
 
  for (unsigned int i=0; i<5; i++) {
    for(unsigned int j=0; j<5; j++) {
       if (!strcmp(nomes_1[i], nomes_2[j])) {
          printf("%s\n", nomes_1[i]);
          break;
       }
    }
  }
  return 0;
}

Share this post


Link to post
Share on other sites
#include <stdio.h>
#include <string.h>
 
int main(void) {
  char nomes_1[5][20] = {"luciano", "carlos", "alexandre", "marcelo", "lucas"};
  char nomes_2[5][20] = {"joão", "lucas", "fabiano", "marcelo", "fernando"};
 
  for (unsigned int i=0; i<5; i++) {
    for(unsigned int j=0; j<5; j++) {
       if (!strcmp(nomes_1[i], nomes_2[j])) {
          printf("%s\n", nomes_1[i]);
          break;
       }
    }
  }
  return 0;
}

 

Desculpe,não entendi essa linha:

 

if (!strcmp(nomes_1[i], nomes_2[j]))

 

Mais especificamente o '!' antes do strcmp.

Share this post


Link to post
Share on other sites

 

Desculpe,não entendi essa linha:

 

if (!strcmp(nomes_1[i], nomes_2[j]))

 

Mais especificamente o '!' antes do strcmp.

é a mesma coisa que ( !strcmp(nomes_1[i], nomes_2[j] == 0 )

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Similar Content

    • By louisefgomes
      oii gente, é que surgiu várias dúvidas agora que eu quis iniciar desenho digital...  Então gostaria de saber qual programa vocês indicam, que tipo de notebook é melhor pra aguentar os programas e que mesa digital vocês indicam...
      para da uma ajudinha:
      01. eu queria programas que fossem recomendados para quem quer fazer quadrinhos, porém se existir um que se adeque tanto para quadrinhos quanto para desenhos realista ficaria feliz ( caso não exita pode indicar um programa bom para cada área ?)
      02. sobre as mesas eu ja vi que as melhores são da wacom queria saber qual dessas é melhor : 
            - Mesa Digitalizadora One by Wacom Pequena - CTL472L
            - Mesa Digitalizadora Wacom Intuos Pequena - CTL4100
      Agradeço desde já atenção de vocês !!!
          
    • By thiagoguedes
      Olá pessoal,  estou dando meus primeiros passos no php e gostaria da ajuda de vocês. 
       
      Estou exibindo os dados da  tabela frete e nela há a chave estrangeira cod_empresa, que informa qual empresa está oferecendo o frete. 
      Quero exibir o nome da empresa quando apresentar o nome da empresa e não o código, então estou fazendo um INNER JOIN pra tabela empresa e tentando exibir o campo nomefantasia_empresa.
       
      Meu código, porém, está dando erro e não consigo corrigir. Vocês podem me ajudar?
       
      <?php include "conexao.php"; $result_fretes = "SELECT * FROM frete AS f INNER JOIN empresa AS e ON f.cod_empresa = e.cod_empresa"; $resultado_cursos = mysqli_query($conn, $result_cursos); while ($rows_cursos = mysqli_fetch_array($resultado_cursos)){ echo $rows_cursos['cod_frete']; echo $rows_cursos['cod_empresa']; echo $rows_cursos['rasaosocial_empresa']; } ?>  
    • By Natália Prego Côco Mendes
      Boa tarde.
       
      Estou a começar a trabalhar com o Dreamweaver e estou com dificuldade e conseguir este efeito na minha página (enviei foto). Já consegui montar a parte de cima, mas agora ao tentar fazer o bloco de baixo, com tit, foto e texto, não consigo que fique alinhado como está na foto. Será que podem ajudar-me? Eu tenho o seguinte código e CSS feito:
      <!doctype html>
      <html>
      <head>
      <meta charset="UTF-8">
      <title>index.html</title>
      <link href="exp.css" rel="stylesheet" type="text/css">
      </head>
      <body tracingsrc="Newsletter_2.jpg" tracingopacity="30">
        <div class="logo"><img src="imagens/Ellipse_1.png" width="221" height="42" alt=""/></div>
      <header class="header">
        <div class="texto-topo">texto topo texto topo</div>
          </header>
      <div class="bloco-a"><div class="tit-bloco-a">título bloco a</div>
      <div class="foto-bloco-a"><img src="imagens/foto1.png" width="222" height="211" alt=""/></div>
      <div class="txt-bloco-a">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse ultrices gravida. Risus commodo viverra maecenas accumsan lacus vel facilisis. 
      </div></div>
      </body>
      </html>
       
      @charset "UTF-8";
      *{
          margin:0 auto;
      }
      .logo {
          width: 30px;
          height: 20px;
          margin-top: 95px;
          margin-left: 356px;
          float: left;
      }
      .texto-topo {
          width: 600px;
          margin-left: 93px;
          margin-top: 20px;
          width: 591px;
          height: 42px;
          font-family: Rift;
          color: #0e3659;
          font-size: 35px;
          font-weight: 700;
          transform: scale(1.152,1.152);
      }
      .tit-bloco-a {
          width: 154px;
          height: 25px;
          float: left;
          margin-top: 724px;
          margin-left: -475px;
      }
      .foto-bloco-a img {
          width: 222px;
          height: 211px;
          float: left;
          float: left
      }
      }
      .header {
          width: 688px;
          height: 390px;
          margin-left: 196px;
          margin-top: 301px;
          background-image: url(imagens/salty-wings-1432145-unsplash.png);
          position: absolute;
          
          
      }
      .tit-bloco-a{
          width: 154px;
          height: 25px;
          font-family: Rift;
          color: #0e3659;
          font-size: 35px;
          font-weight: 700;
          float: left;
      }
      .txt-bloco-a {
          width: 216px;
          height: 120px;
          font-family: Rift;
          color: rgba(14, 54, 89, 0.8);
          font-size: 15px;
          font-weight: 700;
          transform: scale(1.01,1.01);
          margin-top: 750px;
          text-align: center;
          float: left;
      }
      .bloco-a {
          width: 216px;
          height: 600;
          margin-top: 1000px;
          margin-left: 196;
          float: left;
          position: absolute;
      }

    • By Izaac Borges
      Boa noite, me chamo Izaac Borges, acabei de começar aqui. Eu estava procurando um fórum de tecnologia onde eu pudesse encontrar gente disposta a me dar algumas dicas. Estou começando a programar agora, sempre gostei da ideia de programar, já tive algumas experiencias programando código para ,Arduíno coisas bem básicas mas agora estou estudando para valer e escolhi a linguagem C para começar pois já conhecia um pouco dela.
       
      Porem agora estou querendo fazer um sistema simples, onde ele armazena os seus dados(no caso seriam números de jogos da loteria) e  depois você insere os números sorteados e ele diz quantos acertos você fez em cada jogo. Gostaria de saber se é possível fazer esse tipo de programa em C e se eu iria precisar de alguma outra tecnologia para banco de dados, se sim qual tecnologia recomendam para quem está iniciando e quer aprender fazendo pequenos projetos como esse.
    • By Cloudinbr
      desde pequeno sempre tive esse desejo ardente de poder contar uma historia através de um jogo, com um ótimo game play, historia envolvente e dinâmica etc... então assim que completei meus 16 anos, resolvi começar a pesquisar mais sobre a criação de jogos, e a uns meses atras resolvi começar a estudar c++. eu tambei baixei o Godot, que é uma engine boa para criação de jogos e esta ganhando uma certa fama ultimamente, e tambem tem suporte a c++. bem, ainda não estou programando nenhum game porque estou na metade dos meus estudos sobre c++ ainda, mais queria algumas dicas:
       
      *é necessário estudar outras linguagens da programação para programar jogos? se sim quais vocês recomendam?
       
      * Existe algum livro em pdf que poderia me ajudar mais a estudar c++?
       
      *Ultimamente fiquei com duvida se realmente conseguiria fazer um jogo bom em c++, então poderiam me dar exemplos de jogos legais feitos em c++?
       
      enfim, se quiserem me der outras dica ficarei feliz, sou relativamente um iniciante quando se trata de desenvolver jogos(ja tentei fazer uma coisa ou 2 no rpgmaker vxace mas como não sabia nada de programação e só usava os recursos do programa, saia tudo cagado ksksksks) então adoraria saber de dicas dos mais experientes no assunto :v
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.