Jump to content
Fórum Script Brasil
  • 0

Trabalho de programação Linguagem C


fariascac
 Share

Question

Boa noite pessoal, sou novo aqui e venho desesperadamente tentar por um programa qual já fiz e refiz e não consigo obter resultado algum. O programa que uso para compilar é o Dev C++, qual é o mesmo que a univerdade de meu curso utiliza. Aliás, curso Engª Mecânica, e com todas as explicações não consigo fazer o bendito programa. Aos que puderem me ajudar, agradeço.

 

Aqui vai:

Escreva um programa em C que leia 15 numeros inteiros quaisquer,
informados pelo usuario e:
a- A cada numero informado diga se ele é par/impar e primo/não-primo;
b- Antes de encerrar diga qual a media aritmetica de cada numero informado, quantos numeros eram primos, qual o maior numero informado, qual o fatorial do menor numero informado, quantos multiplos de 5 foram informados, quantos vezes o numero 22 foi informado.

 

O que tenho no meu mais novo intento é isso (já adianto que está bem incompleto):

#include <stdio.h>
#include <stdlib.h>

/* run this program using the console pauser or add your own getch, system("pause") or input loop */

int main(int argc, char *argv[]) {
    
        int numero, somanumero, maior, qtdprimos, qtd22, menor, aux, valor, qtidade, ehprimo, cont, fatorialmenor, media, multcinco;    
        
        somanumero=0;
        maior=0;
        qtd22=0;    
        qtidade=0;
        cont=0;
        
            while(cont<=15);
            printf("Informe um numero:     ");
            scanf("%d", numero);
           if ((numero%2)==1)
           
               printf("é impar");
               else{
                printf("é par");
            }
            ehprimo=1;
            aux=numero-1;
            
                while(aux>1)
                    if((numero%aux)==0)
                    ehprimo=0;
                    aux=1;
                    aux=aux-1;
                    if(ehprimo=1)
                        printf("é primo");
                    else{
                    
                        printf("não é primo");}
            
            
            printf("Media aritimetica dos numeros informados = %d", media);    
            printf("A quantidade de primos informados = %d", qtdprimos);    
            printf("O maior numero informado = %d", maior);    
            printf("Qual o fatorial do menor numero informado = %d", fatorialmenor);    
            printf("Quantas vezes o 22 foi informado = %d", qtd22);   
            printf("Quantas multiplos de cinco = %d", multcinco); 
    
    return 0;
}

 

 

Link to comment
Share on other sites

2 answers to this question

Recommended Posts

  • 0
#include <stdio.h>
#include <stdlib.h>

/*Escreva um programa em C que leia 15 numeros inteiros quaisquer,
informados pelo usuario e:
a- A cada numero informado diga se ele é par/impar e primo/não-primo;
b- Antes de encerrar diga qual a media aritmetica de cada numero informado,
quantos numeros eram primos, qual o maior numero informado, qual o fatorial
do menor numero informado, quantos multiplos de 5 foram informados, quantos vezes o numero 22 foi informado.*/

int j;

int par, primo;

/*função geral que calcula quantas vezes aparece o 22, quantos primos,
quantos multiplos de cinco e se é par/impar primo/não-primo*/

int ParImparPrimo (int n, int *primos, int *info22, int *mult5)

{

if (n == 22)

    *info22 = *info22 + 1;

if ((n%5)==0)

    *mult5 = *mult5 + 1;

if ((n%2) != 0)

    {

    printf ("%d eh impar\n", n);

    par = 0;

    }

 else

    {

     printf ("%d eh par\n", n);

     par = 1;

    }

    if (n>=2)

        {

        for (j=2; j<=n; j++)

        {

            if ((n%j) == 0 && (n!=j))

                {

                primo = 0;


                break;

                }

                primo = 1;

          }

        if (primo == 1)

            {

            printf ("%d eh primo\n\n", n);

            *primos = *primos + 1;

            }


        if (primo == 0)

            {

            printf ("%d nao eh primo\n\n", n);

            }

        }


     if (n<2)

     {

     printf ("\n\n~~~~~O número %d eh menor do que 2~~~~~\n\n", n);

     }


 return *primos, *mult5, *info22;

    }


int main()

{


    int primos = 0;

    int info22 = 0;

    int mult5 = 0;

    int backup;

    int mediarit = 0;

    int fatorial=0;

    int numeros [15];

    int i, p;

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

        {

        printf ("Digite o número %d de 15: ", i+1);

        scanf ("%d", &numeros[i]);

        printf ("\n\n");

        ParImparPrimo (numeros[i], &primos, &info22, &mult5);

        }

        //checa o menor e o maior número. O menor será colocado no primeiro índice do array, e o maior no último.



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

        {

            for (p=i+1; p<15; p++)

                {

                    if (numeros[i]>numeros[p])

                        {

                        backup = numeros[i];

                        numeros[i] = numeros[p];

                        numeros[p] = backup;

                        p = i;

                        }

                }

        }

    //calcula média aritmética

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

        {

        mediarit = mediarit + numeros [i];

        }

    mediarit = mediarit / 15;

   // calcula fatorial do menor número

    for (i = (numeros[0] - 1); i>=1; i--)

        {

        fatorial = fatorial + (numeros[0]*i);

        }

printf ("\nA media aritmetica dos numeros informados eh: %d\n", mediarit);
printf ("A quantidade de numeros primos eh: %d\n", primos);
printf ("O maior numero informado eh: %d\n", numeros[14]);
printf ("O menor numero informado eh: %d e o seu fatorial eh: %d\n", numeros[0], fatorial);
printf ("Existem %d multiplos de 5\n", mult5);
printf ("O numero 22 foi informado %d vezes\n", info22);

return EXIT_SUCCESS;

}

Dê uma estudada nesse código. Abraços.

Link to comment
Share on other sites

  • 0

A função de calculo de fatorial do codigo acima está errada, o certo seria:

 

 for (i = numeros[0]-1; i>=1; i--)

        {

        if (i==numeros[0]-1)


            {

            fatorial = numeros[0]*i;

            }

         else

            {

            fatorial = fatorial * i;

            }



        }

Ou então um modo mais genérico, mas inverte a ordem de cálculo, tal como vemos no código abaixo:

 


#include <stdio.h>
 
int main()

{

int fat, n;

printf("Insira um valor para o qual deseja calcular seu fatorial: ");

scanf("%d", &n);
 
for(fat = 1; n > 1; n = n - 1)

fat = fat * n;
 
printf("\nFatorial calculado: %d", fat);

return 0;

}

 

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Forum Statistics

    • Total Topics
      149.6k
    • Total Posts
      646.2k
×
×
  • Create New...