PHP, Java, JavaScript, XML, XHTML, HTML, CSS, ASP, Delphi, Assembly, LaTeX, C, UML, Flash, Perl, SQL, Python, Zope, Pascal, WML. Se conhece mais de 3 siglas referidas, este é o forum para si.
Moderadores: Administradores, Moderadores
por Red_Beret » Sábado Nov 12, 2005 14:21
Bem, tenho aki 4 exercicios para fazer em C, que tenmho de entregar ate 2ª feira, e tou aki com 2 pekenos problemas
1º Problema
Enunciado -
Calcular a média de X números (compreendidos entre 1 e 100) introduzidos pelo utilizador;
Fiz assim
- Código: Seleccionar todos
#include <stdio.h>
void main(){
int soma=0,media,numero,ct=-1;
do{
printf("Introduza um numero entre 1 e 100 (0 para terminar)\n");
scanf("%d",&numero);
if(numero>=1&&numero<=100)
soma=soma+numero;
ct++;
}while(numero!=0);
printf("A soma e %d\n",soma);
media=soma/ct;
printf("A media e %d\n",media);
}
O prob é que ele está a incrementar o contador (ct) mesmo quando ponho numeros maiores que 100 (ou menores que 0), o que faz com que depois a media fique mal calculada. O que é que está mal?
2º Problema
Enunciado -
Verificar se um dado número inteiro é primo (só é divisível por 1 e pelo
próprio).
Alguem me explica como é que ponho o prog a verificar se o nº é primo?
Help. É urgente
Editado pela última vez por
Red_Beret em Domingo Nov 13, 2005 16:19, num total de 1 vez.
-
Red_Beret
- Membro Vitalício

-
- Mensagens: 2334
- Registado: Sexta Set 17, 2004 11:13
por Aziraphale » Sábado Nov 12, 2005 14:51
#include <stdio.h>
void main(){
int soma=0,media,numero,ct=0;
do{
printf("Introduza um numero entre 1 e 100 (0 para terminar)\n");
scanf("%d",&numero);
if((numero >= 1) && (numero <= 100))
{
soma=soma+numero;
ct++;
}
}while(numero!=0);
printf("A soma e %d\n",soma);
media=soma/ct;
printf("A media e %d\n",media);
}
assim de repente...o contador deveria ser inicializado a 0.
if((numero >= 1) && (numero <= 100))
{
soma=soma+numero;
ct++;
}
acho que é só
o dos números primos:
http://www.inf.unibz.it/~calvanese/teac ... imo.c.html
e vê lá se passas a fazer os trabalhos de casa com mais antecedencia

Editado pela última vez por
Aziraphale em Sábado Nov 12, 2005 15:07, num total de 1 vez.
-
Aziraphale
- Membro de Prata

-
- Mensagens: 264
- Registado: Quinta Nov 06, 2003 22:26
por Moebius » Sábado Nov 12, 2005 14:54
- Código: Seleccionar todos
#include <stdio.h>
void main(){
int soma=0,media,numero,ct=-1;
do{
printf("Introduza um numero entre 1 e 100 (0 para terminar)\n");
scanf("%d",&numero);
if(numero>=1&&numero<=100){
soma=soma+numero;
ct++;
}
}while(numero!=0);
printf("A soma e %d\n",soma);
media=soma/ct;
printf("A media e %d\n",media);
}
Tinhas que circuscrever o ciclo do if, porque se usas if sem {} ele só considera a linha seguinte como a clausula a executar caso o if seja verdadeiro.
Quanto aos numeros primos podes optar por diversos estrategias, incluido força bruta ou factorização como o
Sieve of Atkin
Acer 7720G - Core 2 Duo T5250 - 2048 Mb RAM - 250 GB HD - 17" WXGA - nVidia Geforce 8400M GS 256 Mb
Shortly will be running on
Ubuntu Gnome, Firefox and Thunderbid
-
Moebius
- Membro de Prata

-
- Mensagens: 136
- Registado: Segunda Out 06, 2003 18:28
- Localização: Lisboa ou Madeira, conforme o mês do ano
-
por Red_Beret » Sábado Nov 12, 2005 15:05
Aziraphale Escreveu:e vê lá se passas a fazer os trabalhos de casa com mais antecedencia

Ja ta. Tks
Lol, ele so nos enviou as cenas ontem. Não nos da quase tempo nenhum para fazer
-
Red_Beret
- Membro Vitalício

-
- Mensagens: 2334
- Registado: Sexta Set 17, 2004 11:13
por tofas » Domingo Nov 13, 2005 16:13
sobre os numeros primos pode ver
aqui algumas versoes...em C e C++ ...

so quem sabe que nao sabe procura saber...os numeros dominam o mundo!!

-

tofas
- Aprendiz

-
- Mensagens: 88
- Registado: Segunda Mai 16, 2005 16:14
Voltar para Programação
Quem está ligado:
Utilizadores a ver este Fórum: Nenhum utilizador registado e 5 visitantes