循环C中的数字(输入)之和
给出循环的c代码,该循环计算并显示用户输入的数字总和。循环应该提示用户输入,直到用户输入-335,然后退出并显示最终的总和 这就是我所拥有的。为什么当我输入-335时它不打印(退出循环)?它总是让我输入一个数字循环C中的数字(输入)之和,c,while-loop,C,While Loop,给出循环的c代码,该循环计算并显示用户输入的数字总和。循环应该提示用户输入,直到用户输入-335,然后退出并显示最终的总和 这就是我所拥有的。为什么当我输入-335时它不打印(退出循环)?它总是让我输入一个数字 #include <stdio.h> int main(void) { int userNum; printf("Please enter an integer:\n"); scanf("%d", &userNum); while (userNum != -3
#include <stdio.h>
int main(void)
{
int userNum;
printf("Please enter an integer:\n");
scanf("%d", &userNum);
while (userNum != -335){
printf("Please enter an integer:\n");
scanf("%d", &userNum);
userNum += userNum;
}
printf("%d", userNum);
return 0;
}
#包括
内部主(空)
{
int userNum;
printf(“请输入一个整数:\n”);
scanf(“%d”、&userNum);
while(userNum!=-335){
printf(“请输入一个整数:\n”);
scanf(“%d”、&userNum);
userNum+=userNum;
}
printf(“%d”,userNum);
返回0;
}
userNum在您输入它之后,在语句userNum+=userNum代码>-335 plus-335是-670,而不是335。userNum在语句userNum+=userNum中输入后会发生变化代码>-335加-335等于-670,而不是335
while (userNum != 335){
printf("Please enter an integer:\n");
scanf("%d", &userNum);
userNum += userNum;
您正在丢失用户在上一条语句中提供的输入。请使用单独的变量存储结果
int ans=0;
while (userNum != -335){
printf("Please enter an integer:\n");
scanf("%d", &userNum);
ans += userNum;
您正在丢失用户在上一条语句中提供的输入。请使用单独的变量存储结果
int ans=0;
while (userNum != -335){
printf("Please enter an integer:\n");
scanf("%d", &userNum);
ans += userNum;
您需要一个额外的变量来跟踪总和。您当前的方法一直在覆盖它:
因此,添加一行:
int userNum;
int sum = 0; // sum holds total variable
您可以在此处添加和更改:
while (userNum != 335){
printf("Please enter an integer:\n");
scanf("%d", &userNum);
sum += userNum;
}
printf("%d", sum);
您需要一个额外的变量来跟踪总和。您当前的方法一直在覆盖它:
因此,添加一行:
int userNum;
int sum = 0; // sum holds total variable
您可以在此处添加和更改:
while (userNum != 335){
printf("Please enter an integer:\n");
scanf("%d", &userNum);
sum += userNum;
}
printf("%d", sum);
你的程序永远挂在while循环中,因为没有整数*2=-335,只有浮点(-167.5),所以连打破循环的运气都没有
- 如果将userNum声明为float,则有百万分之一的机会打破循环,因此在循环中输入-167.5:
#include <stdio.h>
int main(void)
{
float userNum;
printf("Please enter an integer:\n");
scanf("%G", &userNum);
while (userNum != -335){
printf("Please enter an integer:\n"); // enter -167.5
scanf("%G", &userNum);
userNum += userNum; // -167.5 + (-167.5) = -335 which will cause while to exit
}
printf("%G", userNum); // -335
return 0;
}
#包括
内部主(空)
{
float userNum;
printf(“请输入一个整数:\n”);
scanf(“%G”、&userNum);
while(userNum!=-335){
printf(“请输入一个整数:\n”);//输入-167.5
scanf(“%G”、&userNum);
userNum+=userNum;//-167.5+(-167.5)=-335,这将导致while退出
}
printf(“%G”,userNum);//-335
返回0;
}
要解决您的问题,请声明一个新变量,比如sum,然后sum userNum,并将结果存储在其中。所以userNum在计算时仍然保持不变,所以如果它是-335,那么将退出
#include <stdio.h>
int main(void)
{
int userNum;
int sum = 0; // (very important) initialize in order not to sum gabage value
printf("Please enter an integer:\n");
scanf("%d", &userNum);
while (userNum != -335){
printf("Please enter an integer:\n");
scanf("%d", &userNum);
sum += userNum;
}
printf("%d", sum);
printf("\n");
return 0;
}
#包括
内部主(空)
{
int userNum;
int sum=0;//(非常重要)初始化以避免对石笼值求和
printf(“请输入一个整数:\n”);
scanf(“%d”、&userNum);
while(userNum!=-335){
printf(“请输入一个整数:\n”);
scanf(“%d”、&userNum);
sum+=userNum;
}
printf(“%d”,总和);
printf(“\n”);
返回0;
}
你的程序永远挂在while循环中,因为没有整数*2=-335,只有浮点(-167.5),所以连打破循环的运气都没有
- 如果将userNum声明为float,则有百万分之一的机会打破循环,因此在循环中输入-167.5:
#include <stdio.h>
int main(void)
{
float userNum;
printf("Please enter an integer:\n");
scanf("%G", &userNum);
while (userNum != -335){
printf("Please enter an integer:\n"); // enter -167.5
scanf("%G", &userNum);
userNum += userNum; // -167.5 + (-167.5) = -335 which will cause while to exit
}
printf("%G", userNum); // -335
return 0;
}
#包括
内部主(空)
{
float userNum;
printf(“请输入一个整数:\n”);
scanf(“%G”、&userNum);
while(userNum!=-335){
printf(“请输入一个整数:\n”);//输入-167.5
scanf(“%G”、&userNum);
userNum+=userNum;//-167.5+(-167.5)=-335,这将导致while退出
}
printf(“%G”,userNum);//-335
返回0;
}
要解决您的问题,请声明一个新变量,比如sum,然后sum userNum,并将结果存储在其中。所以userNum在计算时仍然保持不变,所以如果它是-335,那么将退出
#include <stdio.h>
int main(void)
{
int userNum;
int sum = 0; // (very important) initialize in order not to sum gabage value
printf("Please enter an integer:\n");
scanf("%d", &userNum);
while (userNum != -335){
printf("Please enter an integer:\n");
scanf("%d", &userNum);
sum += userNum;
}
printf("%d", sum);
printf("\n");
return 0;
}
#包括
内部主(空)
{
int userNum;
int sum=0;//(非常重要)初始化以避免对石笼值求和
printf(“请输入一个整数:\n”);
scanf(“%d”、&userNum);
while(userNum!=-335){
printf(“请输入一个整数:\n”);
scanf(“%d”、&userNum);
sum+=userNum;
}
printf(“%d”,总和);
printf(“\n”);
返回0;
}
您正在不断覆盖userNum
以丢失原始输入和计算的总和。你应该重新考虑你的逻辑。当你扫描到userNum时,你正在替换之前的值。没有求和。您只需将刚刚输入的数字添加到它本身。你应该有一个单独的地方来存储输入或总和。你需要两个变量:数字输入和总和。顺便说一句,你想要-335
,但是检查335
…好的,我知道我哪里出错了,谢谢大家。你一直在覆盖userNum
丢失原始输入和计算的总和。你应该重新考虑你的逻辑。当你扫描到userNum时,你正在替换之前的值。没有求和。您只需将刚刚输入的数字添加到它本身。您应该有一个单独的位置来存储输入或总和。您需要两个变量:数字输入和总和。顺便说一句,您需要-335
,但是检查335
…好的,我知道哪里出错了,谢谢大家。你知道我怎么修吗?我是编程新手谢谢。你知道我怎么修吗?我是编程新手