循环C中的数字(输入)之和

循环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

给出循环的c代码,该循环计算并显示用户输入的数字总和。循环应该提示用户输入,直到用户输入-335,然后退出并显示最终的总和

这就是我所拥有的。为什么当我输入-335时它不打印(退出循环)?它总是让我输入一个数字

#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
…好的,我知道哪里出错了,谢谢大家。你知道我怎么修吗?我是编程新手谢谢。你知道我怎么修吗?我是编程新手