Pegando o personagem em array e imprimindo-o em C
Sep 15 2020
Eu estava interessado no seguinte problema: Pegue as cores como caracteres (por exemplo: 'y' para amarelo, 'r' para vermelho etc.) em uma matriz e exiba o mesmo. Durante a exibição, deve haver um único espaço entre cada caractere. Então, para fazer isso, escrevi o seguinte código:
#include <stdio.h>
int main(){
char a[10];
int i,n;
printf("Enter the number of colors (less than 10)\n");
scanf("%d", &n);
printf("Enter colors as alphabets : ");
for (i = 0; i < n; i++){
scanf("%c", &a[i]);
}
printf("Entered colors are : ");
for (i = 0; i<n; i++){
printf("%c ", a[i]);
}
return 0;
}
Se eu inserir o tamanho da matriz como 3 e as Cores como ryg, a saída não imprimirá todas as três entradas, em vez disso, imprimirá apenas uma. Mal percebi que há um problema com a função scanf. Qual pode ser o problema?
Respostas
1 VladfromMoscow Sep 15 2020 at 19:25
Use o seguinte especificador de conversão
scanf(" %c", &a[i]);
^^^
Isso permite pular os espaços em branco que, por exemplo, correspondem à tecla Enter pressionada.
Também após este loop
for (i = 0; i<n; i++){
printf("%c ", a[i]);
}
coloque a declaração
putchar( '\n' );
O que significa um erro “Não é possível encontrar o símbolo” ou “Não é possível resolver o símbolo”?