我尝试使用循环从数组中打印出100个数字,然后将它们全部加在一起。到目前为止,我有:
Select values
但这只打印1次。
答案 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);