Dúvida de um iniciante em C [RESOLVIDO]

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?

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

1 curtida

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

   }


}

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

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

O código compila bruno e foi testado,

verifique se esta importando as bibliotecas

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

abraços

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

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…

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

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

http://cpp.sh/

Ok faz um teste :wink:.

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


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

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

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

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

http://cpp.sh/4hbgu

vou olhar aqui, um minuto…

Porque colocou isso:

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

?

hum