为什么我的程序在给出 -1 之前不添加数字?
Why does my program not add numbers until -1 is given?
以下代码应提示用户输入价格并将其添加到总数中。如果用户输入 -1
添加循环必须终止并且程序应该打印总数并退出。但由于某种原因,这并没有发生。
#include <stdio.h>
int main()
{
int price;
int sum;
int exit;
do
{
printf(" Enter a price(-1 to exit)");
scanf("%d", & price);
sum = sum + price++;
printf("the sum of prices is % d ", sum);
}
while (exit != -1);
return 0;
}
问:为什么我的程序在给出 -1 之前不添加数字?
您没有将 exit
分配给任何东西。如果您希望用户输入字符串 -1
,则检查 price
是否为 -1 并退出循环。如果您想让用户输入一个值为 -1 的字符,则使用 fgetc(stdin)
,并检查字符是否为 -1。
此外,要正确计算总和,您不应使用 sum = sum + price++;
增加价格。如果这是为了规避 price 为 -1 的情况并且你不想从总和中减去,你应该检查循环内的 exit 是否为 -1,并使用 break
关键字。
这不是最大的问题,但您应该根据约定格式化您的代码(例如,正确缩进、标识符旁边的操作员地址等)。
你好伙计,现在看看你命名为 int exit 的问题是什么?
但是你只退出 int 变量并且内存未经过滤所以计算机从其他东西获取内存而不是 -1 你需要将 %d 价格放在诡计中
int price;
do
{
block_of_command
}
While(price!=-1);
或
int exit;
int price
do
{
scanf("%d",&price);
exit=price;
}
while(exit!=-1);
我更新了代码,但我不知道如何在退出前添加所有用户输入的价格。这是我的代码。
#include<stdio.h>
int main()
{
int price;
int sum = 0;
while(price != -1)
{
printf(" Enter a price(-1 to exit)");
scanf("%d", & price);
if (price == -1)
{
sum = sum + price;
printf(" adds is %d", sum);
break;
}
}
return 0;
}
你应该使用if-else语句来解决它。如下图所示:
while(price != -1)
{
printf(" \nEnter a price(-1 to exit)");
scanf("%d", &price);
if (price == -1)
{
break;
}
else{
sum = sum + price;
printf(" \ntotal sum till now is %d", sum);
}
}
以下代码应提示用户输入价格并将其添加到总数中。如果用户输入 -1
添加循环必须终止并且程序应该打印总数并退出。但由于某种原因,这并没有发生。
#include <stdio.h>
int main()
{
int price;
int sum;
int exit;
do
{
printf(" Enter a price(-1 to exit)");
scanf("%d", & price);
sum = sum + price++;
printf("the sum of prices is % d ", sum);
}
while (exit != -1);
return 0;
}
问:为什么我的程序在给出 -1 之前不添加数字?
您没有将 exit
分配给任何东西。如果您希望用户输入字符串 -1
,则检查 price
是否为 -1 并退出循环。如果您想让用户输入一个值为 -1 的字符,则使用 fgetc(stdin)
,并检查字符是否为 -1。
此外,要正确计算总和,您不应使用 sum = sum + price++;
增加价格。如果这是为了规避 price 为 -1 的情况并且你不想从总和中减去,你应该检查循环内的 exit 是否为 -1,并使用 break
关键字。
这不是最大的问题,但您应该根据约定格式化您的代码(例如,正确缩进、标识符旁边的操作员地址等)。
你好伙计,现在看看你命名为 int exit 的问题是什么? 但是你只退出 int 变量并且内存未经过滤所以计算机从其他东西获取内存而不是 -1 你需要将 %d 价格放在诡计中
int price;
do
{
block_of_command
}
While(price!=-1);
或
int exit;
int price
do
{
scanf("%d",&price);
exit=price;
}
while(exit!=-1);
我更新了代码,但我不知道如何在退出前添加所有用户输入的价格。这是我的代码。
#include<stdio.h>
int main()
{
int price;
int sum = 0;
while(price != -1)
{
printf(" Enter a price(-1 to exit)");
scanf("%d", & price);
if (price == -1)
{
sum = sum + price;
printf(" adds is %d", sum);
break;
}
}
return 0;
}
你应该使用if-else语句来解决它。如下图所示:
while(price != -1)
{
printf(" \nEnter a price(-1 to exit)");
scanf("%d", &price);
if (price == -1)
{
break;
}
else{
sum = sum + price;
printf(" \ntotal sum till now is %d", sum);
}
}