编写一个计算货物总重量的程序。 C

时间:2017-06-11 18:12:56

标签: c

我正在尝试编写一个计算货物总重量的程序。用户将输入框数和 他们拥有的每种类型的盒子的重量。当提示用户输入重量时,我的代码不断重复“输入框数”两次。我该如何解决这个问题?这是我的代码:

#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;
}

2 个答案:

答案 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终止)