如何在一个数组中打印出100个数字,然后使用C将它们相加
我试着用一个循环从一个数组中打印出100个数字,然后把它们加在一起。到目前为止,我已经:如何在一个数组中打印出100个数字,然后使用C将它们相加,c,arrays,C,Arrays,我试着用一个循环从一个数组中打印出100个数字,然后把它们加在一起。到目前为止,我已经: #include <stdio.h> #include <stdlib.h> int main(){ int* number = malloc(101 * sizeof(int)); int num = 0; number[num] = 1; while (number[num] <= 100){ printf(" %d\n
#include <stdio.h>
#include <stdlib.h>
int main(){
int* number = malloc(101 * sizeof(int));
int num = 0;
number[num] = 1;
while (number[num] <= 100){
printf(" %d\n ", number[num]);
num = num +1;
number[num] = number[num]+1;
}
return 0;
}
#包括
#包括
int main(){
int*number=malloc(101*sizeof(int));
int num=0;
数字[num]=1;
而(数字[num]请尝试以下操作:
#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;
}
#包括
int main(){
int n[100];/*n是由100个整数组成的数组*/
int i,j;
整数和=0;
/*初始化*/
对于(i=0;i<100;i++){
n[i]=i+100;/*将位置i处的元素设置为i+100*/
}
/*输出每个数组元素的值*/
对于(j=0;j<100;j++){
printf(“元素[%d]=%d\n”,j,n[j]);
总和+=n[j];
}
printf(“元素的总和=%d\n”,总和);
返回0;
}
记住,你应该声明一个数组
,然后初始化它,打印出来,最后打印出和
你可以只打印出1到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);
inti=0;
对于(i=1;i
您只正确设置了编号[0]
。现在您正试图在第一次迭代中获取编号[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]);
for(int a=0;a<100;a++){
数字[100]+=数字[a];//将数字[a]添加到结果中
}
printf(“%d\n”,编号[100]);
另外,不要忘记在最后释放动态分配的数组。基本上你的代码中没有数组。你显示的代码有什么问题?根据你的说法,这是什么行为,“number[num]=number[num]+1?更不用说引用未初始化的值会导致未定义的行为。我已经修复了它。编辑:nvm idk如何将代码添加到注释中。感谢您的帮助。未定义的行为是什么意思。我在注释中解释了这部分代码将数组的位置I初始化为
I+100
。因此n[0]=100,n[1]=101
等等…@chrisw69我想我弄错了,我认为n[I]=I+100
是未定义的行为,但现在不确定。我的C相当生锈
for (int a = 0; a < 100; a++) {
number[100] += number[a]; // add number[a] to result
}
printf("%d\n",number[100]);