Dúvida de um iniciante em C [RESOLVIDO]

25 respostas
Bruno_Gomes1

Ola boa noite, estou em dúvida desse exercício:

#include <stdio.h>

int main()
{
   int index = 0, contador;
   char letras[5] = "Joao";

   for (contador = 0; contador < 1000; contador++)
   {
      printf("\n%c",letras[index]);
      (index == 3) ? index = 0: ++index;
   }
}

O nome Joao é escrito na tela verticalmente até a variável contador determinar o término
do programa. Enquanto isto a variável index assume os valores 0, 1, 2, 3, , 0, 1, … progressivamente.

Altere o último exemplo para que ele escreva cada letra 5 vezes seguidas. Para isto, use
um ’if’ para testar se o contador é divisível por cinco (utilize o operador %) e só então realizar
a atualização em index.

Já tentei executar ele de varias formas mais não consigo que ele imprima 5 vezes cada letra, não estou entendendo a logica. Alguém que possa sanar a minha duvida e me explicar?

25 Respostas

saulod2

Se entendi certo, você quer imprimir 5 vezes cada letra seguidamente, de forma que formem
5 colunas com o nome Joao. Então três dicas:

  1. O for deveria percorrer a quantidade suficiente para imprimir apenas o nome cinco vezes, então reduza para 5 * 4 = 20.
  2. Na própria questão diz que você deverá realizar o teste do contador se é módulo 5, então use contador % 5 == 0. Além disso, ao invés de iniciar contador em 0, porque não em 1? Assim ficaria o intervalo 1 <= contador <= 20.
  3. Cada vez que index é atualizado, na dica 2, então imprima o ‘\n’.

A resposta deveria ser:

J J J J J o o o o o a a a a a o o o o o

Felipe_Miranda

Executa o código abaixo, é isso que queria? se tiver alguam dúvida só postar que explico o código, abraços…

#include <iostream>
#include <string>
using namespace std;

int main()
{

   char letras[5] = "Joao";

   for (int i = 0;  i <=20; i++){
           if(i % 5 == 0){
                cout << endl;
                for(int i=0; i <= 5; i++){
                        for(int i=0; i<=5; i++){
                             cout <<  letras[0];
                        }
                        for(int i=0; i<=5; i++){
                             
                             cout <<  letras[1];
                        }
                        for(int i=0; i<=5; i++){
                            
                             cout <<  letras[2];
                        }
                        for(int i=0; i<=5; i++){
                             
                             cout <<  letras[3];
                        }
                        for(int i=0; i<=5; i++){
                            
                             cout <<  letras[4];
                        }
                 cout << endl;

                }
                
                cout << endl;
                cout << "------------------------";
                cout << endl;
          }        

   }


}
Bruno_Gomes1

Muito obrigado, a segunda opção que você me passou me deu luz pra fazer o resto kkkkk
Resposta:

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

int main()
{
    int index = 3, contador;
    char letras[5] = "Joao";

    for (contador = 0; contador <= 99; contador++)
    {
        if(contador%5 == 0)
        {
            (index == 3) ? index = 0: ++index;
            printf("\n");
        }
        printf("%c", letras[index]);
    }

    return 0;
}
Bruno_Gomes1

De algum modo seu código esta dando um erro !

Felipe_Miranda

O código compila bruno e foi testado,

verifique se esta importando as bibliotecas

#include <iostream>
#include <string>
using namespace std;

abraços

Bruno_Gomes1

Esta dando erro da linha da biblioteca: 13|fatal error: iostream: No such file or directory|

Felipe_Miranda

Bruno qual programa você esta usando para compilar?

atente para # não esqueça disso…antes de aplicar um include

quando for postar código seleciona ele e marca como texto pre formatado…

Bruno_Gomes1

Code Blocks, sim ele ta com # normal. Ele acusa esse erro. Que estranho ! :confused:

Felipe_Miranda

testa usando esse compilador online, vou testar aqui um momento…

http://cpp.sh/

Bruno_Gomes1

Ok faz um teste :wink:.

Felipe_Miranda

Bruno aqui funcionou, você provavelmente não deve ter a biblioteca em seu pacote, mesmo importando-a.

saida do código executado:

JJJJJJooooooaaaaaaoooooo
JJJJJJooooooaaaaaaoooooo
JJJJJJooooooaaaaaaoooooo
JJJJJJooooooaaaaaaoooooo
JJJJJJooooooaaaaaaoooooo
JJJJJJooooooaaaaaaoooooo


JJJJJJooooooaaaaaaoooooo
JJJJJJooooooaaaaaaoooooo
JJJJJJooooooaaaaaaoooooo
JJJJJJooooooaaaaaaoooooo
JJJJJJooooooaaaaaaoooooo
JJJJJJooooooaaaaaaoooooo


JJJJJJooooooaaaaaaoooooo
JJJJJJooooooaaaaaaoooooo
JJJJJJooooooaaaaaaoooooo
JJJJJJooooooaaaaaaoooooo
JJJJJJooooooaaaaaaoooooo
JJJJJJooooooaaaaaaoooooo


JJJJJJooooooaaaaaaoooooo
JJJJJJooooooaaaaaaoooooo
JJJJJJooooooaaaaaaoooooo
JJJJJJooooooaaaaaaoooooo
JJJJJJooooooaaaaaaoooooo
JJJJJJooooooaaaaaaoooooo


JJJJJJooooooaaaaaaoooooo
JJJJJJooooooaaaaaaoooooo
JJJJJJooooooaaaaaaoooooo
JJJJJJooooooaaaaaaoooooo
JJJJJJooooooaaaaaaoooooo
JJJJJJooooooaaaaaaoooooo


Felipe_Miranda

tira um print de todo o código nesse site para eu olhar melhor, deixa tudo a vista…

Bruno_Gomes1

Então já me esclarece kkk, como que importo ele, só um adendo meus projetos estou criando e C e não C++.

Felipe_Miranda

Bruno onde tem endl equivale a \n, e onde tem cout equivale a seu printf.

Felipe_Miranda

posta um print de todo o código e do resultado no site que te falei…

Bruno_Gomes1

http://cpp.sh/4hbgu

Felipe_Miranda

vou olhar aqui, um minuto…

Felipe_Miranda

Porque colocou isso:

cout &lt;
            &lt;
            endl;
            cout &lt;
            &lt; "------------------------";
            cout &lt;
            &lt;
            endl;

?

Bruno_Gomes1

hum

Bruno_Gomes1

Ue copiei do teu código kkkkk

Felipe_Miranda

quando você copiou veio caracteres especiais que não são interpretados e não fazem nenhum sentido pro compilador de C, por isso ele estava acusando erro, e falando que não entende o que tinha ali,

substitua esse techo por :slight_smile:

cout << endl;
            cout << "------------------------";
            cout << endl;
Felipe_Miranda

veja funcionando em: http://cpp.sh/9cez

Bruno_Gomes1

Sim agora esta funcionando arrumei aqui pelo compilador que você me passou mais no meu compilador code blocks ele não compila, continua dando o erro. Deve ser como você falou falta a biblioteca… :sob:

Mais blz seu código também funciona, só que não entendi muito bem ele, é C++? Algum comando o outro que não entedi o por que do comando, mais tudo certo. Obrigado !

O que fiz faz a mesma coisa só que em menos linha:

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

int main()
{
    int index = 3, contador;
    char letras[5] = "Joao";

    for (contador = 0; contador <= 99; contador++)
    {
        if(contador%5 == 0)
        {
            (index == 3) ? index = 0: ++index;
            printf("\n");
        }
        printf("%c", letras[index]);
    }

    return 0;
}
Felipe_Miranda

legal bruno deu tudo certo agora ne, problema resolvido?

Bruno_Gomes1

Sim sim, tudo ok !

Criado 8 de maio de 2016
Ultima resposta 8 de mai. de 2016
Respostas 25
Participantes 3