Avatar billede klikkomania Nybegynder
28. maj 2006 - 19:40 Der er 5 kommentarer

Et interaktivt program

Hej igen. Mange tak for hjælpen med løkkerne. I er dygtige. Jeg har endnu en opgave jeg ikke selv kan tage hul på i alm. c. Den lyder således:
"Write an interactive program that asks the user to supply three integeres k, m, and n, with k being greater than 1.Your program should compute the sum of all the integers between m and n that are disvisible by k. "
Jeg håber at der er nogle af jer c-skarpe der også lynhurtigt vil kunne se opbygningen af dette program, og meget gerne svare på det. (Jeg er nybegynder). Mange tak på forhånd igen
Avatar billede bertelbrander Novice
28. maj 2006 - 20:18 #1
Den kritiske del må være noget i stil med:

int k, m, n;
int sum, i;
// read k, m, n
for(i = ((m + k - 1)/k)*k, sum = 0; i < n; i += k)
  sum += i;

Man kan diskutere om tallene m og/eller n skal regnes med hvis de er "divisible by k"
Avatar billede noerbo Nybegynder
28. maj 2006 - 23:34 #2
Godt nok i C++, men det burde nemt kunne oversættes til C. Du skal bare selv lave inputs og ændre cout til printf()


#include <iostream>

using namespace std;

int main()
{
  int m=4; // start
  int n=20; // slut
  int k=3; // interval
  int sum=0;

  while(m%k!=0)
    {
      m++;
    }

  while(m<=n)
    {
      sum=sum+m;
      m=m+k;
    }

  cout<<sum<<endl; // Udskriver variablen
  return 0;
}

  Måden det virker på er at det i det første while-loop øger m's værdi indtil den er delelig med k. Operatoren % retunerer resten ved division. dvs 7%2 giver 1 og 8%3 giver 2 10%5 giver 0.

  I det næste while-loop øges m's værdi så med k indtil den bliver større end m. Her er det vigtigt, at du altid regner summen ud, inden du øger m, da du ellers vil køre loopet engang for meget.
Avatar billede rif1900 Nybegynder
30. maj 2006 - 19:06 #3
noerbo

lille kommentar

han kan let bruge cout i c++, i hvert fald hvis det er consol baseret.
Avatar billede noerbo Nybegynder
30. maj 2006 - 19:11 #4
Han spurgte nu efter C og kan aldrig huske, hvordan det er man udskriver variabler med printf();
Avatar billede rif1900 Nybegynder
30. maj 2006 - 19:20 #5
lol
jeg må være lidt halv træt :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester