Это не то, как вы используете scanf
scanf("%d", weight);
scanf("%d", quantity);
Вы должны передать адрес переменной, а не значение переменной.
Это будет выглядеть так:
scanf("%d", &weight);
scanf("%d", &quantity);
Ваш цикл while зависит от значения weight
.Значение weight
никогда не изменяется в вашем цикле, поэтому цикл никогда не может выйти.
Эта строка:
total_weight= total_weight + (quantity*weight);
использует значение total_weight
, которое былоникогда не инициализируется.
Вы должны инициализировать свои переменные.
В целом, я думаю, что ваш фиксированный код должен выглядеть следующим образом:
#include <stdio.h>
int main()
{
int weight = 0; //weight of boxes
int quantity = 0; //number of boxes
int total_weight = 0; //total weight
int n = 1;
while(weight!=-1)
{
printf("Enter weight (lbs) of Type %d box: ", n);
scanf("%d", &weight); // Update weight **inside** the loop
printf("Enter quantity: \n");
scanf("%d", &quantity);
total_weight= total_weight + (quantity*weight);
n++;
}
printf("The total weight is %0.2d", total_weight);
return 0;
}