Ir ao conteúdo
  • Cadastre-se

Exercicio em C++


Yame

Posts recomendados

Estou fazendo o seguinte programa:Preencha um vetor de 20 elementos inteiros colocando 1 na posição correspondente a um quadrado perfeito e 0 nas demais.

Eu pensei da seguinte forma

#define N 19

int main(void)

{

int A[N];

int i;

printf("\n\n");

for (i=0;i<N;i++);

{

if ((i=4) || (i=9) || (i=16))

A=1;

printf("%d",&A);

else ----> (ERRO) "expected primary expression before "else"

A=0;

printf("%d",&A);

}

printf("\n\n");

system("pause");

return(0);

Eu nao sei porque está dando esse erro, alguem poderia me explicar?

Link para o comentário
Compartilhar em outros sites

Quando o comando do if é mais de uma linha coloque entre chaves e o mesmo faça com else por que é como você fizesse um else sem condição nehuma;


if(condição)
{
comandos
em
linhas...
}
else
{
comandos...
}

Tenta aí e diz seu resultado;


if ((i=4) || (i=9) || (i=16))
A[i]=1;
printf("%d",&A[i]);
else ----> (ERRO) "expected primary expression before "else"
A[i]=0;
printf("%d",&A[i]);

o porque do seu erro: ao ler os comandos o compilador fez:

if ----> comparou se a expressão era verdadeira

----->atribui ao vetor se verdade (como não está entre chaves acaba o if)

----->imprime o vetor de qualquer forma

else ----->inicia um else mas não tem nenhuma condição(if) a ser testada

dá erro

Link para o comentário
Compartilhar em outros sites

No seu código há uma série de erros..

1 - Você não incluiu a biblioteca <stdio.h>

2 - Você fechou o for() com um ponto-e-vírgula. Ou seja, o seu bloco do laço não pertence ao laço.

3 - no if(), você fez as comparações com um único sinal de igual. Isso é uma atribuição. Caso queira comparar dois elementos, deve-se utilizar dois sinais de igual.

4 - No printf(), você usou o operador '&'. É um operador unário que se refere ao endereço da memória do elemento ao qual é aplicado. Ou seja, seus prontf() exibiam o endereços na memória.

5 - Seus if() não tinham os abre-chaves e fecha-chaves (como já fora dito).

6 - Você não colocou o fecha-chaves da função main().

Sobre o funcionamento, não é necessário você usar um vetor. Pode dar um printf() diretamente. Exemplo:


for (i=0;i<N;i++){
if ((i==4) || (i==9) || (i==16)){
printf("1");
else
printf("0");
}

Link para o comentário
Compartilhar em outros sites

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!