我正在尝试编写一个计算货物总重量的程序。用户将输入框数和 他们拥有的每种类型的盒子的重量。当提示用户输入重量时,我的代码不断重复“输入框数”两次。我该如何解决这个问题?这是我的代码:
#include<stdio.h>
int main()
{
int x,y,total=0; // variables
{
while(!(x==-1 || y==-1)){
printf("Enter the number of boxes:");
scanf("%d",&x);
printf("Enter the weight(lbs):");
scanf("&d",&y);
total+=(x*y);
}
printf("\n");
}
if (x==-1 || y==-1) { // when the user inputs -1, the next
line will execute
printf("The total weight is:%d",total);
}
printf("\n");
system("PAUSE");
return 0;
}
答案 0 :(得分:0)
我已根据其他人为您撰写的评论对您的代码进行了编辑:
#include <stdio.h>
int main()
{
int x = 0,y = 0,total=0; // variables
while(!(x==-1 || y==-1)){
printf("Enter the number of boxes:");
scanf("%d",&x);
printf("Enter the weight(lbs):");
scanf("%d",&y);
total+=(x*y);
}
printf("\n");
if (x==-1 || y==-1)
{ // when the user inputs -1, the next line will execute
printf("The total weight is:%d",total);
}
printf("\n");
return 0;
}
我所做的就是更简单,更好地写出来
祝你的作业好运
答案 1 :(得分:0)
这里有一些固定的代码,但是你需要这些新的标题来使它工作
#include<stdio.h>
#include <string.h>
#include <stdlib.h>
所以我认为你遇到的问题是输入缓冲区正在跳过第二个值。 为了解决这个问题,我使用了fgets,因为它更容易使用。
char input[3];
int x = NULL;
int y = NULL;
int total = 0; // variables
while (x == NULL || y == NULL)
{
printf("Enter the number of boxes:");
fgets(input, 3, stdin);
input[strlen(input) - 1] = 0;
x = atoi(input);
printf("Enter the weight(lbs):");
fgets(input, 3, stdin);
input[strlen(input) - 1] = 0;
y = atoi(input);
total += (x*y);
}
输入数组中的3需要等于您希望接受的字符数+2(考虑/ n / 0终止)