guilhoto Posted April 25, 2012 at 10:22 AM Report #451312 Posted April 25, 2012 at 10:22 AM Fazer um programa em C para calcular a soma dos N primeiros múltiplos de um inteiro K, onde N e K são lidos e são números inteiros e positivos... preciso de fazer isto e tenho tido dificuldade em somar os numeros que me dao... #include <stdio.h> #include <stdlib.h> main(){ int n,k,soma; printf("Introduza um numero inteiro positivo:\n"); scanf(" %d", &k); printf("Introduza a quantidade de multiplos do numero inteiro introduzido que deseja somar:\n"); scanf(" %d", &n); if(k<=0 || n<=0){ printf("Introduza numeros inteiros positivos\n"); } else{ for(k; n>0; n--){ printf(" %d\n", ((n-1)*k) + k); } } system("pause"); } coloquei este codigo que me da os numeros que eu quero mas nao me soma...alguem sabe como posso por os numeros a somar? por exemplo se n=5 e k=5, o programa imprime-me os numeros 25, 20, 15, 10 e 5 mas eu gostava que me imprimisse 75(a soma deles) se alguem me poder ajudar agradecia abraço 😉
bubulindo Posted April 25, 2012 at 10:29 AM Report #451313 Posted April 25, 2012 at 10:29 AM Crias uma variável que vai conter a soma dos numeros... e antes de os imprimir, somas. include <ai se te avio> Mãe () { }
guilhoto Posted April 25, 2012 at 10:32 AM Author Report #451314 Posted April 25, 2012 at 10:32 AM eu ainda sou novo no mundo da programaçao (1 semana) e tentei fazer isso...fazer um scanf a seguir ao printf do for...e depois da chaveta do for um printf a imprimir a soma...mas so apareceu o primeiro numero, o 25... nao estou a ver como e que somo antes de aparecerem todos os numeros pois o for esta sempre a repetir :S
saritax Posted April 25, 2012 at 10:43 AM Report #451317 Posted April 25, 2012 at 10:43 AM if(k<=0 || n<=0) tu colocaste assim: se k for menor ou igual a zero OU n menor ou igual a zero. Logo estas apenas a ler se o valor for negativo, que como vi não é o que pretendes... Espero ter ajudado. cumps
guilhoto Posted April 25, 2012 at 10:49 AM Author Report #451319 Posted April 25, 2012 at 10:49 AM mas eu ai estou a por um if pro caso da pessoa colocar um numero negativo, seja k ou n, para aparecer uma msg para introduzir um numero inteiro positivo 😉
saritax Posted April 25, 2012 at 10:53 AM Report #451321 Posted April 25, 2012 at 10:53 AM então mas podes colocar IF, para verificar se os valores introduzidos são positivos, se sim, soma caso contrario envia a mensagem a pedir para introduzir valores positivos. Entendes?
guilhoto Posted April 25, 2012 at 10:56 AM Author Report #451322 Posted April 25, 2012 at 10:56 AM sim entendo 😉, so nao sei como e que eu somo todos os numeros que me saem do for...
saritax Posted April 25, 2012 at 11:01 AM Report #451324 Posted April 25, 2012 at 11:01 AM #include<stdio.h> main() { int x,soma; soma=0; for(x=0;x<=100;x++) soma = soma + x; printf("soma dos 1ºs 100 numeros inteiros e :%d",soma); getchar(); getchar(); } Tens aqui um exemplo, espero que ajude....
HappyHippyHippo Posted April 25, 2012 at 11:05 AM Report #451326 Posted April 25, 2012 at 11:05 AM eu hoje estou de boa disposição : #include <stdio.h> #include <stdlib.h> main(){ /* declaracao de variavel da aplicacao */ int n = 0,k = 0,soma = 0; /* introducao dos valores por parte do utilizador */ printf("Introduza um numero inteiro positivo:\n"); scanf("%d", &k); printf("Introduza a quantidade de multiplos do numero inteiro introduzido que deseja somar:\n"); scanf("%d", &n); /* verificacao dos valores introduzidos */ if(k<=0 || n<=0){ printf("Introduza numeros inteiros positivos\n"); } else { /* * ciclo da soma dos multiplos * n*k + (n-1)*k + (n-2)*k + ..... 2*k + 1*k */ for(; n>0; n--) soma += n*k; /* apresentacao do resultado */ printf("O resultado da soma e : %d\n", soma); } /* usado em windows para nao fechar a janela da consola */ system("pause"); } IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
guilhoto Posted April 25, 2012 at 11:11 AM Author Report #451328 Posted April 25, 2012 at 11:11 AM obrigado a todos pela ajuda e pela vossa boa disposiçao xD o que me faltava era tambem perceber que (((n-1)+k)+k) = n+k --' burrice minha xD. muito obrigado a todos 😉 abraço
HappyHippyHippo Posted April 25, 2012 at 11:14 AM Report #451329 Posted April 25, 2012 at 11:14 AM #include<stdio.h> main() { int x,soma; soma=0; for(x=0;x<=100;x++) soma = soma + x; printf("soma dos 1ºs 100 numeros inteiros e :%d",soma); getchar(); getchar(); } Tens aqui um exemplo, espero que ajude.... o código que fizeste post não é a soma dos múltiplos mas sim a soma do número n-vezes IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
saritax Posted April 25, 2012 at 11:25 AM Report #451332 Posted April 25, 2012 at 11:25 AM Eu não disse que era múltiplos... Apenas coloquei um código de forma a que ele conseguisse perceber a lógica do for,e como somar valores que saem dele para que o pudesse utilizar.
Baderous Posted April 25, 2012 at 01:00 PM Report #451351 Posted April 25, 2012 at 01:00 PM Atenção aos títulos dos tópicos: coisas claras e objectivas e não "urgente" ou "preciso de ajuda".
pedrosorio Posted April 25, 2012 at 01:40 PM Report #451359 Posted April 25, 2012 at 01:40 PM Fazer um programa em C para calcular a soma dos N primeiros múltiplos de um inteiro K, onde N e K são lidos e são números inteiros e positivos... preciso de fazer isto e tenho tido dificuldade em somar os numeros que me dao... k + 2*k + ... + N*k = k * (1 + 2 + ... + N) = k * N*(N+1)/2 A última igualdade é a soma de uma progressão aritmética. Não respondo a dúvidas por mensagem.
HappyHippyHippo Posted April 25, 2012 at 01:43 PM Report #451361 Posted April 25, 2012 at 01:43 PM k + 2*k + ... + N*k = k * (1 + 2 + ... + N) = k * N*(N+1)/2 A última igualdade é a soma de uma progressão aritmética. pois ... mas o problema parece um exercício para perceber ciclos está correcto matematicamente, mas errado no ponto de vista de aplicação de conhecimentos IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
pedrosorio Posted April 25, 2012 at 02:02 PM Report #451369 Posted April 25, 2012 at 02:02 PM pois ... mas o problema parece um exercício para perceber ciclos está correcto matematicamente, mas errado no ponto de vista de aplicação de conhecimentos Estou perfeitamente de acordo no que toca ao exercício. Acontece que provavelmente ele vai ter mais 500 exercícios para perceber ciclos, mas vai ter poucos para poder perceber que (n-1)*k + k = n*k ou que algum raciocínio permite passar um algoritmo de O(N) para O(1). A importância da matemática na educação de um programador é muito subvalorizada. Não respondo a dúvidas por mensagem.
HappyHippyHippo Posted April 25, 2012 at 02:06 PM Report #451372 Posted April 25, 2012 at 02:06 PM Estou perfeitamente de acordo no que toca ao exercício. Acontece que provavelmente ele vai ter mais 500 exercícios para perceber ciclos, mas vai ter poucos para poder perceber que (n-1)*k + k = n*k ou que algum raciocínio permite passar um algoritmo de O(N) para O(1). A importância da matemática na educação de um programador é muito subvalorizada. 😉 IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now