C 在for循环中使用sum的问题

C 在for循环中使用sum的问题,c,sum,C,Sum,嗨,抱歉,这可能是一个愚蠢的问题,但我只是在C中移动我的第一步,我找不到任何具体的答案,所以: 假设我必须对一些整数求和,为什么表达式sum+=sum,在这段代码中只返回我输入的最后一个数字time2(lastNumber*2) unsigned int count=0,sum=0; printf(“你想和多少个数字求和:”); 扫描频率(“%u”,计数(&C); 对于(int i=1;i与直线 scanf ("%u", &sum); // Let's say the user ente

嗨,抱歉,这可能是一个愚蠢的问题,但我只是在C中移动我的第一步,我找不到任何具体的答案,所以:

假设我必须对一些整数求和,为什么表达式
sum+=sum
,在这段代码中只返回我输入的最后一个数字time2(lastNumber*2)

unsigned int count=0,sum=0;
printf(“你想和多少个数字求和:”);
扫描频率(“%u”,计数(&C);
对于(int i=1;i与直线

scanf ("%u", &sum); // Let's say the user enters "7"
在每次迭代中,您都会使用用户输入的新值覆盖sum的值

sum = sum + sum;  // equivalent to sum = 7 + 7;
您可以通过使用两个变量来避免这种情况:

int sum = 0;
int userIn = 0;
scanf ("%u", &userIn);  // userIn has now the value of the user input
sum += userin; // Add that value to the sum
在执行scanf(…,&sum)时,实际上覆盖了它的值。 所以,每次迭代你什么也不做。
一般来说,将变量专用于每个目的是一种良好的做法。这意味着-变量包含总和,而另一个变量则获取用户输入。

您可能希望:

unsigned int count = 0, sum = 0;
printf("How many numbers do you want to sum: ");
scanf("%u", &count);

for (int i = 1; i <= count; ++i) {
    printf("enter the integer: ");
    unsigned int value;
    scanf("%u", &value);
    sum += value;  // or sum = sum + value;
}

printf("the sum of all the %u numbers is: %u\n", count, sum);
unsigned int count=0,sum=0;
printf(“你想和多少个数字求和:”);
扫描频率(“%u”,计数(&C);

对于(int i=1;i因为
sum+=sum;
相当于
sum=sum+sum;
和(sum+sum)相当于(2*sum).

sum+=sum
=
sum=sum+sum
确定它是
sum*2
为输入目的使用一个变量如何?请缩进您的代码。
sum+=x
根本不应该编译。现在,如果正确声明x之后,您要
scanf(%u,&x)
,您的解决方案会更接近。。。
unsigned int count = 0, sum = 0;
printf("How many numbers do you want to sum: ");
scanf("%u", &count);

for (int i = 1; i <= count; ++i) {
    printf("enter the integer: ");
    unsigned int value;
    scanf("%u", &value);
    sum += value;  // or sum = sum + value;
}

printf("the sum of all the %u numbers is: %u\n", count, sum);