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

programação C


prnis

Pergunta

Preciso de Ajuda, programação C

 

4. Faça uma função que receba três números inteiros como parâmetros, representando horas, minutos e segundos e os converta em segundos.

 

5. Faça uma função que receba um número inteiro positivo N como parâmetro e retorne a soma dos N números inteiros existentes entre 1 e esse número.

 

6. Escreva uma função que recebe como parâmetro um inteiro positivo ANO e devolve 1 se ano for bissexto, 0 em caso contrário. (Dica: Um ano é bissexto se ele é divisível por 4)

 

7. Escrever um algoritmo que lê um vetor K(15) e o escreve. Crie, a seguir, um vetor P, que contenha todos os números primos de K e o resto das posições deve ser preenchido com zero. Escreva o vetor P. (Dica: use a função da questão 2)

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

6 respostass a esta questão

Posts Recomendados

  • 0

/* 1 Elabore um algoritmo que calcule o valor da série S para os 10 primeiros termos:*/

#include <stdio.h>

#include <stdlib.h>

 

 

float S(float valor){

float fatorial,i;

for(i=1; i<=10; i++){

fatorial=valor/i;

}

return fatorial;

}

int main(){

float i,y=0,resultado;

for(i=0; i<=10; i++){

resultado = S(y);

printf("Valor da Serie, S: %.2f\n", resultado);

}

system("pause");

return 0;

}

/* 2.Escreva uma função que recebe um inteiro positivo m e devolve 1 se m é primo, 0 em

caso contrário. Em seguido escreva um programa que leia um inteiro não-negativo n e

imprima a soma dos n primeiros números primos.*/

 

#include <stdio.h>

#include <stdlib.h>

int numero(int m){

int con,x;

 

for(x=0; x<=m; x++)

{

if(m%2==0)

{

con++;

}

}

if(con==2)

{

return 1;

}

if(con>2)

{

return 0;

}

}

 

int main ()

{

int num, x;

printf("Digite um número inteiro positivo: ");

scanf("%d", &num);

x = numero(num);

if(x==1)

{

printf(" primo: 1\n");

}

if(x==0)

{

printf(" não é primo: 0\n");

}

system("pause");

return 0;

}

/* 3.Escrever um algoritmo que gera os 10 primeiros números primos acima de 100 e os

armazena em um vetor de X(10) escrevendo, no final, o vetor X. (Dica: use a função da

questão 2)*/

 

#include <stdio.h>

#include <stdlib.h>

 

int dez(int z){

int con2=0,con=0;

while(con2<10)

{

if(z%2==0)

{

con++;

}

if(con==2)

{

return z;

}

con2++;

}

}

 

int main()

{

int x[10],i=0, num=0;

x= dez(num);

printf("10 primeiros primos acima de 100: %d", x);

system("pause");

return 0;

}

/* SEM ERRO== 4. Faça uma função que receba três números inteiros como parâmetros, representando

horas, minutos e segundos e os converta em segundos*/

 

#include <stdio.h>

#include <stdlib.h>

 

int somahora(int a, int b, int c){

int z;

z=(a*3600)+(b*60)+c;

return z;

 

}

int main (){

int h,m,s,z;

 

printf ("Digite a(s) Hora(as): ");

scanf (" %d",&h);

printf ("Digite o(s) Minuto(os): ");

scanf (" %d",&m);

printf ("Digite o(s) Segundo(os): ");

scanf (" %d",&s);

printf ("\n\n%d Horas %d minutos e %d segundos.\n",h,m,s);

 

z=somahora(h,m,s);

printf ("\n\nTotal: %d segundos.\n\n", z);

system ("pause");

return 0;

}

 

/*SEM ERRO===5. Faça uma função que receba um número inteiro positivo N como parâmetro e retorne

a soma dos N números inteiros existentes entre 1 e esse número.*/

 

#include <stdio.h>

#include <stdlib.h>

 

int num(int z){

int i, soma=0;

for(i=2; i<z; i++){

soma=soma+i;

}

return soma;

}

int main()

{

int n,x=0;

printf("Digite um numero inteiro positivo: ");

scanf("%d", &n);

x= num(n);

printf("\n A soma dos valores entre 1 e %d é: %d \n\n", n, x);

return 0;

}

/* SEM ERRO===6. Escreva uma função que recebe como parâmetro um inteiro positivo ANO e devolve 1

se ano for bissexto, 0 em caso contrário. (Dica: Um ano é bissexto se ele é divisível por

4)*/

 

#include <stdio.h>

#include <stdlib.h>

 

int bis(int z){

if((z%4==0) && (z%100!=0)){

return 1;

}

else if(z%400==0)

{

return 1;

}

else

{

return 0;

}

}

int main()

{

int ano,x;

printf(" Digite um valor inteiro positivo: ");

scanf("%d", &ano);

x= bis(ano);

if(x==1){

printf(" \nO ano é bissexto\n");

}

else

{

printf(" \nO ano não é bissexto\n");

}

return 0;

}

/*7. Escrever um algoritmo que lê um vetor K(15) e o escreve. Crie, a seguir, um vetor P,

que contenha todos os números primos de K e o resto das posições deve ser

preenchido com zero. Escreva o vetor P. (Dica: use a função da questão 2)*/

 

#include <stdio.h>

#include <stdlib.h>

 

int primos(int v[15]){

int i,con;

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

if(v%2==0)

{

con++;

}

}

if(con==2)

{

return v;

}

if(con>2)

{

return 0;

}

}

 

int main()

{

int k[15],i, p[15];

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

printf("digite 15 valores[%d]: ",i);

scanf("%d", &k);

p= primos(k);

if (p!=0)

{

printf("%d", p);

}

else

{

printf("0");

}

}

printf("\n\n");

return 0;

}

8. Faça uma função arctan que recebe o número real x , x Î [0,1], e devolve uma aproximação do arco tangente de x (em radianos) através da série

arctan(𝑥) = 𝑥 − 𝑥 3 3 + 𝑥 5 5 − 𝑥 7 7 + ⋯

incluindo todos os termos da série até que | 𝑥 𝑘 𝑘 | < 0.0001

basicamente, fiz essas, sempre tem algum erro...acho q to no caminho certo

Link para o comentário
Compartilhar em outros sites

  • 0

1) Não sei se entendi muito bem o que o algoritmo deve fazer, se estiver errado me corrija, mas imagino que seja entrar com valores de 0 a 10 e realizar o cálculo da função S(), certo?

Se for, o erro que encontrei é que você tá mandando o y=0 por parâmetro, que vai realizar sempre o cáculo de 0/i, que vai resultar sempre em 0. O que pode resolver, se for como imaginei, é trocar o y por i(que incrementa na repetição).

____________________________________________________________________________________________________________________

int main(){

float i,resultado;

for(i=0; i<=10; i++){

resultado = S(i); // <<<<<<<

printf("Valor da Serie, S: %.2f\n", resultado);

}

system("pause");

return 0;

}

 

 

 

 

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

  • 0

2) Se atente a quando usar uma variável contadora, como o "con", inicializá-la com 0, caso contrário inicializará com lixo de memória.

Notei que você usa if(se), porém  não usa muito else(caso contrário), dê uma analisada no código que fiz e veja como facilita usar mais else,. Notei também o uso excessivo de "{  }". Para repetições(for no caso) e condições(if no caso) que conterem apenas uma linha e código dentro, não é necessário o uso de "{ }". Analise a Solução e veja como funciona.

______________________________________________________________

#include <stdio.h>
#include <locale> //Permite o uso da função p/ acentuações
#include <stdlib.h>

int numero(int m){

int con=0,x;

for(x=1; x<=m; x++)
{
    if(m%x==0)
        con++;
}

if(con==2)
    return 1;
else
    return 0;

}

int main()
{

int num, x;

setlocale(LC_ALL,"Portuguese"); //Permite o uso de acentuações

printf("Digite um número inteiro positivo: ");
scanf("%d", &num);

x = numero(num);

if(x==1)
    printf(" primo: %d\n",x);
else
    printf(" não é primo: %d\n",x);

system("pause");

return 0;
}

 

 

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

  • 0

3) Resolução:

 

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

int numero(int m){

    int con=0,x;

    for(x=1; x<=m; x++)
    {
        if(m%x==0)
            con++;
    }

    if(con==2)
        return 1;
    else
        return 0;

}

void SalvaPrimos(int vet[10])
{
    int cont=0,i,x;

    for(i=100;cont<11;i++)
    {
        x=numero(i);

        if(x==1)
        {
            vet[cont]=i;
            cont++;
        }
    }
}

void Exibe(int vet[10])
{
    int i;

    printf("[ Numeros Primos acima de 100 ]\n");

    for(i=0;i<10;i++)
        printf("\n%dº: %d",i+1,vet[i]);

    printf("\n\n");
}

int main()
{
    int vet[10];

    setlocale(LC_ALL,"Portuguese");

    SalvaPrimos(vet);
    Exibe(vet);

    system("pause");

    return 0;
}

 

Editado por HappyPenguin
Bug na tag [spoiler]
Link para o comentário
Compartilhar em outros sites

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,3k
    • Posts
      652,5k
×
×
  • Criar Novo...