Я пытаюсь взять разделенные пробелами значения для продаж массива, используя переменную sentinel для завершения цикла, когда пользователь вводит -1. Цикл печати печатает информацию в таблице. Но когда я компилирую и запускаю программу, я получаю -1. # R в выходных данных. Почему я это понимаю?
Я использую Atom для написания и tdm-gcc в качестве моего компилятора. Я понял, что объявление продаж в качестве статической переменной решает проблему. Но почему я получил этот -1. # R выход? Использование onlinegdb.com также решает проблему. Я просто не могу понять, что означает -1. # R.
static double sales[4][5];
double sum=0, cache=0;
int x=0,y=0;
printf("Enter Salesperson Number (1-4), Product Number (1-5) and Total Product Value\n\n");
while(x>=0) {
scanf("%d",&x);
if(x<0) break;
scanf("%d%*c%lf", &y, &cache);
sales[x-1][y-1] = cache;
}
printf(" %-13s%-18s%-18s%-18s%-18s%-18s\n", "","Salesperson 1","Salesperson 2","Salesperson 3","Salesperson 4","Total (Product)");
for(int j=0;j<5;++j) {
printf(" Product %-5d ",j+1);
for(int i=0; i<4; ++i) {
printf("%-18.2f", sales[i][j]);
sum += sales[i][j];
}
printf("%.2f\n",sum);
sum=0;
}
printf(" Total ");
for(int i=0;i<4;++i) {
sum=0;
for(int j=0;j<5;++j) {
sum += sales[i][j];
}
printf("%-18.2f", sum);
}
1 2 10
-1
Salesperson 1 Salesperson 2 Salesperson 3 Salesperson 4 Total (Product)
Product 1 0.00 0.00 0.00 0.00 0.00
Product 2 10.00 0.00 0.00 -1.#R -1.#R
Product 3 0.00 0.00 0.00 0.00 0.00
Product 4 0.00 0.00 0.00 0.00 0.00
Product 5 0.00 0.00 0.00 0.00 0.00
Total 10.00 0.00 0.00 -1.#R