Ir para conteúdo
Fórum Script Brasil
  • 0

Ajuda com Programa em C


Tradeli

Pergunta

Estou tentando fazer um programa em C que leia 25 números para o vetor a[25], mas estes números precisam ser diferentes de zero e pares, sem repetir, depois criar um outro vetor b[75], onde este será preenchido colocando-se primeiro o valor correspondente de a, nas duas posições a frente os dois números primos que somados são iguais ao número de a, estou com problema na parte do vetor b, gostaria da ajuda de alguém que pudesse analisar o código e me explicar o porque dos erros...

OBS: Meu compilador é o codeblocks...

#include <stdio.h>
#include <time.h>
#define j 25
#define g 75

preencha(int[], int);//protótipos
mostravetor(int[], int);
int primo(int);



main()
{
    int i,a[25],b[75],s,x,primo1,primo2,v,p,n,u;
    srand(time(NULL));
    preencha(a,j);
    for(i=0;i<25;i++) //preenche o b com valores retornados do vetor a e da função que verifica se um número é primo ou não.
    {
        v=1;
        for(n=1;n<=a[i];n++)
        {
            if(primo(n))
                if(v==1)
                {
                    primo1=n;
                    primo2=n;
                    v=0;
                }
            if(v==0)
                primo2=n;
            s=(primo1+primo2);
            if(s==a[i])
            {
                b[i]=a[i];
                printf(" (%d)-%d-%d ",i,a[i],b[i]);
                b[(i+1)]=primo1;
                b[(i+2)]=primo2;
            }
        }
        }
        mostravetor( a, j);//mostra os vetores
        printf("\n\n\n");
        mostravetor(b, g);
}
int s,x,primo1,primo2,v,p,n,d,u;
preencha(int l[],int b)//preenche o vetor a.
{
    int k,i;
    i=0;
       do{
        printf("digite um numero para a posicao %d: ",i+1);
        scanf("%d",&x);
        if((x!=0)&&(x%2==0)&&(x!=2)){
            l[i]=x;
            i=1;
        }
        }while(i!=1);
        do{
            u=0;
            k=0;
            x=(rand()/100);
            if((x!=0)&&(x%2==0)&&(x!=2))
            {
                for(u = 0; u < i; u++)
                    if (l[u]==x)
                        k=1;
                if(k==0)
                    {
                    l[i]=x;
                    i++;
                    }
            }
          }while(i<b);
}

mostravetor(int x[],int ba){//mostra os vetores
    int i;
    for(i=0;i<ba;i++)
        printf(" %d-%d ",i,x[i]);
}
int primo(int n)//verifica se um número é primo ou não
  {
        int x, p;
        p = 0;
        x = n;
        while (x >= 1) {
            if (n % x == 0)
                p++;
                x--;
            }
       if (p != 2)
         return 1;  //VERDADEIRO ou TRUE
         else
            return 0;  //FALSO ou FALSE
  }

Editado por Tradeli
Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...