programa basico em c

Elabore um programa, que some números inteiros fornecidos pelo utilizador, até ser introduzido o
valor 0 (zero). No final deverá indicar a soma dos números introduzidos. Nota: O utilizador introduz
um número de cada vez.


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


int main()
{
int num, soma=0;


do {
printf("introduza um numero inteiro\n");
scanf(" %d", &num);}
while(num != 0);
printf("A soma dos numeros e %d\n", soma=soma+num);




return 0;
}


foi o que eu fiz... Desculpem a ignorancia... Se me puderem corrigir fico desde ja agradeçida
 
Como o heyjack disse estás a somar os números fora do ciclo.

Sugestão:

1 - A seguir ao scanf faz soma=soma+num;

2 - No último printf faz printf(".....%d\n", soma);
 
Declara C=0 (de contar) e m=0(Média), e antes do while metes: c=c+1;
depois do while fazes: printf("A média dos números é: ", m=c/soma);

E está feito :D
 
Tens de ter uma variável que inicializas a zero e é incrementada dentro do ciclo while. No fim, depois de fechares o ciclo, divides a soma por essa variável.
 
Declara C=0 (de contar) e m=0(Média), e antes do while metes: c=c+1;
depois do while fazes: printf("A média dos números é: ", m=c/soma);

E está feito :D

Fiz como disseste e nao esta a funcionar, devo de ser eu que estou a fazer algo de mal.



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




int main()
{
int num, soma=0, media=0, contar=0;




do {
printf("introduza um numero inteiro\n");
scanf(" %d", &num);
soma=soma+num;
contar=contar+1;
}
while(num != 0);


printf("A soma dos numeros e %d\n", media=contar/soma);








return 0;
}

foi assim que fiz, estou a fazer mal??

desde ja muito obrigado pela ajuda
 
A média é soma/nº_elementos, logo no último printf tens ao contrário. Troca o media=contar/soma por media=soma/contar.

E convém declarares a média e a soma ou o contar também como float porque senão vais ter sempre um resultado inteiro

Assim em princípio fica correcto.

Se quiseres, podes também alterar o contar=contar+1 por contar++ ou então por contar+=1

Qualquer coisa deste género:
Código:
[COLOR=#7F4726][FONT=Menlo]#include [COLOR=#e20300]<stdio.h>
[/COLOR][/FONT][/COLOR][COLOR=#e20300][COLOR=#7f4726]#include [/COLOR]<stdlib.h>[/COLOR]


[COLOR=#cc00a2]int[/COLOR] main()
{
    [COLOR=#cc00a2]int[/COLOR] num, contar=[COLOR=#3d00db]0[/COLOR];
    [COLOR=#cc00a2]float[/COLOR] soma=[COLOR=#3d00db]0[/COLOR], media=[COLOR=#3d00db]0[/COLOR];
    
    [COLOR=#cc00a2]do[/COLOR] {
[COLOR=#e20300][COLOR=#000000]        printf([/COLOR]"introduza um numero inteiro\n"[COLOR=#000000]);[/COLOR][/COLOR]
        scanf([COLOR=#e20300]"%d"[/COLOR], &num);
        soma=soma+num;
        contar++;
    }
    [COLOR=#cc00a2]while[/COLOR](num != [COLOR=#3d00db]0[/COLOR]);
    
    media=soma/contar;
    
[COLOR=#e20300][COLOR=#000000]    printf([/COLOR]"A soma dos numeros e %f\n"[COLOR=#000000], soma);[/COLOR][/COLOR]
[COLOR=#e20300][COLOR=#000000]    printf([/COLOR]"A media dos numeros e %f\n"[COLOR=#000000], media);[/COLOR][/COLOR]
    
    
[COLOR=#cc00a2][COLOR=#000000]    [/COLOR]return[COLOR=#3d00db]0[/COLOR][COLOR=#000000];[/COLOR][/COLOR]
}
 
Última edição:
A média é soma/nº_elementos, logo no último printf tens ao contrário. Troca o media=contar/soma por media=soma/contar.

E convém declarares a média como float senão a média vai dar sempre um inteiro.

Assim em princípio fica correcto.

Se quiseres, podes também alterar o contar=contar+1 por contar++ ou então por contar+=1

Agora ja da qualquer coisa, mas quando faço 10+10

o programa depois da-me media de 6 pois também conta quando o utilizador introduz zero, ou seja em vez de dividir por 2 divide por 3
 
Isso é muito fácil de resolver. Vê a solução que pus em cima para o problema. Na linha anterior a media=soma/contar metes contar--;
 
É isso mesmo... Desculpem a minha burrice ... É que isto para mim ainda é chines.
No atletismo os treinadores estão, cada vez mais, a usar técnicas informáticas para estudarem o
movimento dos membros e articulações tendo como objectivo conseguir um maior desempenho nos
seus atletas. Por exemplo, no salto em comprimento filmam o salto para posteriormente analisarem a
altura, a velocidade, o comprimento e o ângulo do centro de gravidade.
Elabore um programa que peça ao utilizador uma sequência de comprimentos de saltos até que seja
introduzido o valor zero. No final, o programa deverá indicar o total de saltos, o maior e menor
comprimento bem com a média de todos os comprimentos.
O resultado deste programa deverá estar no seguinte formato:
Indique altura do atleta: 1.8
Indique altura do atleta: 1.65
Indique altura do atleta: 1.85
Indique altura do atleta: 0
A media das alturas e: 1.77
Introduza um comprimento: 1.4
Introduza um comprimento: 2.3
Introduza um comprimento: 2.0
Introduza um comprimento: 0
RESULTADOS
Total de saltos: 3
Media: 1.9
Maior comprimento: 2.3
Menor comprimento: 1.4

O ultimo que tenho para fazer é este.

nao estou a entender como vou saber qual o maior ou menor numero
 
Já todos passámos por isso. Com o tempo vais aprendendo e melhorando. Alguma coisa estamos cá para ajudar ;)

Esse programa aproveita muito do programa que fizeste antes. Calcular a média de alturas e a média dos comprimentos é igual à média dos números introduzidos portanto a única coisa que tens a fazer é calcular o maior e menor saltos.

Para isso declaras as variáveis maior e menor iguais a 0 e ambas como float.

fazes um scanf para o comprimento do salto, se for diferente de 0, como é o 1º salto vai ser o maior e o menor salto simultaneamente. assim sendo fazes maior=distancia_de_salto e menor=distancia_de_salto e já não entras no ciclo que vem a seguir, logo fazes logo return 0;

Caso não tenhas recebido o 0 tens de continuar a receber valores, logo fazes o mesmo ciclo que tinhas feito no programa anterior e lá dentro vês se o número introduzido é maior que o maior, se for, actualizas o maior. E fazes o mesmo para o menor.
 
Última edição:
Já todos passámos por isso. Com o tempo vais aprendendo e melhorando. Alguma coisa estamos cá para ajudar ;)

Esse programa aproveita muito do programa que fizeste antes. Calcular a média de alturas e a média dos comprimentos é igual à média dos números introduzidos portanto a única coisa que tens a fazer é calcular o maior e menor saltos.

Para isso declaras as variáveis maior e menor iguais a 0 e ambas como float.

fazes um scanf para o comprimento do salto, se for diferente de 0, como é o 1º salto vai ser o maior e o menor salto simultaneamente. assim sendo fazes maior=distancia_de_salto e menor=distancia_de_salto e já não entras no ciclo que vem a seguir, logo fazes logo return 0;

Caso não tenhas recebido o 0 tens de continuar a receber valores, logo fazes o mesmo ciclo que tinhas feito no programa anterior e lá dentro vês se o número introduzido é maior que o maior, se for, actualizas o maior. E fazes o mesmo para o menor.


Mais uma vez muito obrigado... Até breve
 
Back
Topo