Calculating the sum of integers in an array

后端 未结 9 1500
我在风中等你
我在风中等你 2021-01-19 03:11

I don\'t know if I\'m just being a total fool, most likely I am, it\'s been a long day, but this isn\'t working as I want it to, and, well, I don\'t see why.

It sho

相关标签:
9条回答
  • 2021-01-19 04:07

    My guess is buffer over-run since the for-loop reads in 11 numbers and the 11th number gets stored outside the array, probably overwriting i.

    Try changing the 11 to a 10 in the for loop.

    0 讨论(0)
  • 2021-01-19 04:07

    You're storing eleven numbers into an array of size 10. Thus you're storing the last element out of bounds, which invokes undefined behavior.

    The reason that this undefined behavior manifests itself as an infinite loop in your case is probably that i is stored after array in memory on your system and when you write a number into array[10] (which is out of bounds, as I said), you're overwriting i. So if you entered a number smaller than 11 this will cause the loop to continue and ask for input once more.

    0 讨论(0)
  • 2021-01-19 04:09

    Try this:

    void main() {
     int array[10];
     int i;
     int sum = 0;
    
      for ( i = 0; i < 11; i++){
       scanf("%d", &array[i]);
      }
      for (i = 0; i < 11; i++) {
       sum = sum + array[i] ;
      }
    printf("%d", sum);
    
    return 0;
    }
    
    0 讨论(0)
提交回复
热议问题