如何在数组中打印100个数字,然后使用C添加它们

时间:2016-02-01 08:44:54

标签: c arrays

我尝试使用循环从数组中打印出100个数字,然后将它们全部加在一起。到目前为止,我有:

Select values

但这只打印1次。

3 个答案:

答案 0 :(得分:1)

    number[num] = number[num]+1;

您只需正确设置number[0]。现在,您正尝试在number[1]中进行更新并在第一次迭代中添加它。你没有把它设置成任何东西,让它没有初始化。这是未定义的行为。你最想做的是

    number[num] = number[num-1]+1;

在打印之前将一个添加到上一个数字。现在打印好了。

要添加它们,只需执行

for (int a = 0; a < 100; a++) {
 number[100] += number[a]; // add number[a] to result
}
printf("%d\n",number[100]);

另外,最后不要忘记free动态分配的数组。

答案 1 :(得分:0)

试试这个:

#include <stdio.h>

int main () {

   int n[ 100 ]; /* n is an array of 100 integers */
   int i,j;
   int sum = 0;

   /* initialization */
   for ( i = 0; i < 100; i++ ) {
      n[ i ] = i + 100;   /* set element at location i to i + 100 */
   }

   /* output each array element's value */
   for (j = 0; j < 100; j++ ) {
      printf("Element[%d] = %d\n", j, n[j]);
      sum += n[j];
   }

   printf("Sum of Elements = %d\n", sum);
   return 0;
}

请记住,您应该声明array,然后将其初始化,打印出来,然后打印出sum

答案 2 :(得分:0)

你可以打印1到100,然后你可以快速使用一些数学来计算所有数字加在一起的数量,例如,高斯算法之一,特别是http://betterexplained.com/articles/techniques-for-adding-the-numbers-1-to-100/

  

有一个流行的故事,高斯,数学家非凡,有一个懒惰的老师。所谓的教育工作者想让孩子们忙碌,这样他就可以小睡一会儿;他要求班级将数字加1到100。

以下是我要做的事情: -

int i = 0;
for (i = 1; i <= 100; i++) {
  printf("%d", i);
}

// gauss technique 100(100 + 1) / 2

int count = (100 * 100 + 100 * 1) / 2;
printf("all numbers added: %d", count);