SeqSum: Sum of Consecutive Ints Equal to n

  • Thread starter Thread starter Dr.Brain
  • Start date Start date
  • Tags Tags
    Sum
Join the discussion
Ask a follow-up here, or get your own question answered by working scientists, mathematicians and engineers — people, not an autocomplete.
Real named experts · corrections over time · the nuance an AI answer skips
1 reply · 3K views
Dr.Brain
Messages
539
Reaction score
2
Write a program called seqsum (source code: seqsum.c) that reads an integer n from the keyboard, and that prints all sequences of consecutive integers whose sum is equal to n. For example, if the input was 30, the program should print out
4,5,6,7,8
6,7,8,9
9,10,11

--------------------------------------------------------

This is the code i wrote...and it gives no errors...but after running it when i input the number 'n' and press enter..it does nothing... :(

main()
{
int i,j,k,m,n;
printf("Input number : \n");
scanf("%d" , &n);
for(i=1;i<=(n/2);i++)
{ k=0;
for(j=i;j<=(n/2+1);j++)
{ k+=j;
if(k==n)
{ for(m=i;m<=j;m++)
printf("%f \t ",m); }
printf("\n");
}
}
}
 
Physics news on Phys.org
The code tag is your friend...
Code:
main() {
   int i,j,k,m,n;
   printf("Input number : \n");
   scanf("%d" , &n);
   for(i=1;i<=(n/2);i++) {
      k=0;
      for(j=i;j<=(n/2+1);j++) {
         k+=j;
         if(k==n) {  
            for(m=i;m<=j;m++)
               printf("%f \t ",m);
         }
         printf("\n");
      }
   }
}

Just for fun, you might want to check whether scanf is returning 0.
Why are you using %f in printf when m is an integer?