Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

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;
}


Compartilhar este post


Link para o post
Compartilhar em outros sites

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

Compartilhar este post


Link para o post
Compartilhar em outros 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;

}

 

 

Compartilhar este post


Link para o post
Compartilhar em outros 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.

Compartilhar este post


Link para o post
Compartilhar em outros 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!

Compartilhar este post


Link para o post
Compartilhar em outros 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;
}

Compartilhar este post


Link para o post
Compartilhar em outros 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;
}

Compartilhar este post


Link para o post
Compartilhar em outros 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.

Compartilhar este post


Link para o post
Compartilhar em outros 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 )

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por leonardorafaeldev
      Boa noite pessoal estou com um problema que o icone do meu site não aparece no mobile segue uma foto do problema o meu codigo esta assim
       
      <!-- icones -->   <link href="icones/favicon.ico" rel="icon">   <link href="icones/favicon.ico" rel="shortcut icon">    <link rel="apple-touch-icon" sizes="57x57" href="icones/apple-icon-57x57.png">   <link rel="apple-touch-icon" sizes="60x60" href="icones/apple-icon-60x60.png">   <link rel="apple-touch-icon" sizes="72x72" href="icones/apple-icon-72x72.png">   <link rel="apple-touch-icon" sizes="76x76" href="icones/apple-icon-76x76.png">   <link rel="apple-touch-icon" sizes="114x114" href="icones/apple-icon-114x114.png">   <link rel="apple-touch-icon" sizes="120x120" href="icones/apple-icon-120x120.png">   <link rel="apple-touch-icon" sizes="144x144" href="icones/apple-icon-144x144.png">   <link rel="apple-touch-icon" sizes="152x152" href="icones/apple-icon-152x152.png">   <link rel="apple-touch-icon" sizes="180x180" href="icones/apple-icon-180x180.png">   <link rel="icon" type="image/png" sizes="192x192"  href="icones/android-icon-192x192.png" >   <link rel="icon" type="image/png" sizes="36x36" href="icones/android-icon-36x36.png">   <link rel="icon" type="image/png" sizes="48x48" href="icones/android-icon-48x48.png">   <link rel="icon" type="image/png" sizes="96x96" href="icones/android-icon-96x96.png">   <link rel="icon" type="image/png" sizes="144x144" href="icones/android-icon-144x144.png">   <link rel="icon" type="image/png" sizes="72x72" href="icones/android-icon-72x72.png">   <link rel="icon" type="image/png" sizes="32x32" href="icones/favicon-32x32.png">   <link rel="icon" type="image/png" sizes="96x96" href="icones/favicon-96x96.png">   <link rel="icon" type="image/png" sizes="16x16" href="icones/favicon-16x16.png">   <link rel="manifest" href="icones/manifest.json">   <meta name="msapplication-TileColor" content="#ffffff">   <meta name="msapplication-TileImage" content="icones/ms-icon-144x144.png">   <meta name="theme-color" content="#ffffff">   <meta charset="utf-8">   <meta content="width=device-width, initial-scale=1.0" name="viewport">
    • Por biakelly
      Oi
       
      Estou fazendo um bot para o telegram, na verdade ele esta funcionando, mas estou com problema de caracteres gigantes pós o ponto. Exemplo quando chamo ele apresenta o número:
       
      0.004152635241526325
       
      Eu queria apresentar assim:
       
      0.004152
       
      Adicionei este trecho:
      (["0_THKJSq4c26vz2tpnkmijgjfy28trvfg"]["price"], 6, ',', '.')
       
      mas não esta funcionando, nào sei se estou fazendo corretamente, segue o trecho que preciso alterar:
       
      if (strpos($message, "/price") === 0) { $price = json_decode(file_get_contents("https://api.justswap.io/v1/tradepairlist"), TRUE)(["0_THKJSq4c26vz2tpnkmijgjfy28trvfg"]["price"], 6, ',', '.'); file_get_contents($path . "/sendmessage?chat_id=" . $chatId . "&text=Preço: " . $price); }  
    • Por Onaita
      Boa noite, preciso de uma ajuda com o código abaixo:
      - Dentro da variável '$dados' tenho uma array em que o id repete com datas diferentes, preciso descartar uma das duas arrays repetidas com o mesmo 'id', mantendo a de menor data, ou seja, o resultado final seria:
      "Array ( [0] => Array ( [id] => 12 [data] => 2020-07-02 ) , [1] => Array ( [id] => 13 [data] => 2020-06-10 ) ) "
      - já tentei de tudo um pouco a princípio estou trabalhando com a ideia de loop dentro de loop, para varrer e comparar, mas como vcs podem ver estou deixando passar alguma coisa;
      <?php
      $dados =     [array("id" =>12, "data"=>"2020-07-02"),
                  array("id" =>13, "data"=>"2020-06-10"),
                  array("id" =>13, "data"=>"2020-06-15"),
                  array("id" =>12, "data"=>"2020-05-12")];
      $total = count($dados);
      foreach($dados as $item){
          for($i=1; $i < $total; $i++){
              if($item['id'] == $dados[$i]['id']){
                  if(strtotime($item['data']) <= strtotime($dados[$i]['data'])){
                      unset($dados[$i]);
                      $dados = array_values($dados);
                      $total = count($dados);
                      
                  }    
              }    
          }    
      }
      print_r($dados);
      Array ( [0] => Array ( [id] => 12 [data] => 2020-07-02 ) ) //resultado
       
      Se alguém achar o erro, ou uma forma de resolver esse problema ficarei muito agradecido!
      Obrigado e Um grande abrs a todos!
    • Por Licht
      Quero um programa que leia vários numeros e informa quantos pares foram digitados. Quando o número 0 (zero) for digitado ele para a execucao. O programa entra num loop e nao funciona como gostaria <?php             $cont= 0;             do {                 echo "<form method='GET' action='exemplo.php'><br/>";                 echo "<h1>Quantidade de numeros pares</h1><br/>";                 echo "<label for='num'>Numero: </label><br/>";                 echo "<input type='number' name='num'/><br/><br/>";                 echo "<input type='submit' value='Verificar'>";                 echo "</form>";                 echo "Contador: $cont";                 $num_verificar = isset($_GET["num"]) ? $_GET["num"] : ' ';                 if($num_verificar%2 == 0)                     $cont ++;             } while ($num_verificar != 0);             echo "Quantidade de numeros pares eh $cont! <br/>"; ?>             
    • Por viniciusfroner
      Boa noite, estou com um grande problema, formatei o meu notebook pela ferramenta de formatação do windows, quando estava tudo instalado reparei que alguns caracteres não eram mais reconhecidos, pesquisei pela internet sem sucesso, abri um ticket junto a microsoft e eles fizeram o reparo remoto, e mesmo assim não resolveu nada.
      O problema vai desde reconhecimento de caracteres em interface do windows ou programas, até na leitura de alguns textos como arquivos .srt e outros.
       
      Em anexo 2 imagens de exemplo do que acontece.
       
      Fico grato por qualquer ajuda.


×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.