这是一个简单的程序,我有一个任务要做.
- 向用户询问一个数字,您可以假设该数字为1或更大
- 按3计数,将数字从1打印到用户编号; 例如,最多15:1,4,7,10,13 o在一行上打印数字o另外,找到这些数字的总和并在下一行打印,在这种情况下为35
- 在1个程序中使用while循环解决,然后再使用for循环解决
这是我的代码
#include<stdio.h>
int main(){
int number;
int i = 1;
int sum = 0;
printf("Please enter a number greater than 1: ");
scanf("%d", &number);
while(i < number){
printf("%d ", i);
i+=3;
sum = sum + i;
}
printf("\nThe sum of these numbers is: %d\n", sum);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
这是示例输出:
请输入大于1:15的数字
1 4 7 10 13
这些数字的总和是:50
我不能为我的生活弄清楚为什么数字(15)被添加到总和.输入15被添加到1,4,7,10和13的总和.在这个程序的哪个点上,我的数字相等?
如果这不是很有意义,我很抱歉.任何帮助表示赞赏.我想了解我做错了什么.谢谢.
i在将它添加到总和之前,您正在递增!如果每个数字增加3,那么在这种情况下,您的总误差将加起来为15.
确保i只有在每次迭代中使用完后才增加:
while(i < number){
printf("%d ", i);
sum = sum + i;
i+=3;
}
Run Code Online (Sandbox Code Playgroud)