Ir ao conteúdo

Problema com string[x]


AprendC

Posts recomendados

Postado

Boa tarde.

Estou utilizando alguns tutoriais encontrados na internet para aprende C sozinho. Em um desses materiais, há a sugestão para elaborar, como um exercício, um código para imprimir verticalmente uma string de modo que cada letra se repita 5 vezes.

O código que fiz foi:

#include <stdio.h>
int main() {
int index = 0, contador;
char letras[5] ="Joao";
for (contador=0; contador < 1000; contador++)
{
printf("\n%c",letras[index]);
if (contador%5==0) {
if (index==3) {
index=0;
}
else {

++index;
}
}
}
}

Ao executar o código, ele imprime:


o
o
a
a
a
a
a
o
o
o
o
o
J
J
J
J
J
o
o
o
o
o
a
a
a
a
a
o
o
o
o
o
...
o

Não consigo entender o porquê do código imprimir a partir da letra 'o' (posição 1 da string), repetindo-a apenas 3 vezes, e não a partir da letra 'J' (posição 0 da string).

Desde já, agradeço.

Postado

Bom, o problema é o contador que está muito alto XD

testei aqui com 25 e foi de boa..

é que a tela do DOS/PROMPT do Windows tem um limite de linhas (não sei se no do linux também tem..)

acho que é 50 linhas ou 150...

no seu caso so pegou as ultimas linhas "válidas".. e uma coisa.. mude pra

printf("%c\n", nome[indice]);

vai usar todas as linhas.. e coloque contador à partir de 1 para repetir a primeira letra tambem

beleza? :)

Postado

Por que voce botou 1000 aí??

Se for o que eu entedi, voce pode fazer usando dois laços for.

Um laço vai percorrer começando do elemento de índice '0' até enquanto não chega ao final da string. Lembrando que o final da string é sempre \0:

for(indice = 0 ; letras[indice] != '\0' ; indice++)

Pronto. Assim ele percorrer só as letras da string, nao importa qual seja ela.

E dentro desse for você bota outro laço que cujo índice vai de 0 até 4, ou de 1 até 5, o importante é que se repita 5 vezes.

Dentro desse laço, voce imprime letras[indice]

Postado

@anonimo1w

Cara, muito obrigado pela ajuda! Funcionou direitinho. Nem imaginava que poderia ser esse o problema.

@Jarlisson

Muito obrigado pela sugestão! Eu utilizei o 1000 com base em um outro exemplo da apostila, só por isso. Testei sua sugestão e funcionou também! Apenas acrescentem mais um laço for pra que a cada letra se repita 5 vezes e a palavra se repetisse várias vezes (acredito que esqueci de mencionar isso na descrição).

A forma como escrevi o código teve como base o exercício que pedia que fosse feito utilizando o 'if'.

Considero o tópico resolvido. Obrigado!

Postado

Caso o autor do tópico necessite, o mesmo será reaberto, para isso deverá entrar em contato com a moderação solicitando o desbloqueio.

Arquivado

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

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

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!