почему мой код выводит 0, когда я правильно сделал синтаксис - PullRequest
0 голосов
/ 12 октября 2019

Я думаю, что проблема начинается перед вложенным если, потому что в конце кода он должен вывести результат sales = price * sold, но он также выведет 0

#include<stdio.h>
main() {
    int num, price, sold, sales;
    float compercent, commision;
    printf("Enter Unit Price: ");
    scanf("%d", &price);
    printf("Enter Quantity Sold: ");
    scanf("%d", &sold);
    sales = price * sold;

    if (sales >= 50000) {
        compercent = 0.1;
    }
    else if (sales >= 40000 && sales < 50000) {
        compercent = 0.08;
    }
    else if (sales >= 30000 && sales < 40000) {
        compercent = 0.06;
    }
    else if (sales >= 20000 && sales < 30000) {
        compercent = 0.04;
    }
    else if (sales >= 10000 && sales < 20000) {
        compercent = 0.02;
    }
    else if (sales >= 5000 && sales < 10000) {
        compercent = 0.01;
    }
    else if(sales<5000){
        compercent = 0;
    }
    commision = sales * compercent;
    printf("Sales: ");
    printf("sales = %f", &sales);
    printf("Commision: ");
    printf("%f", &commision);
}

Ответы [ 2 ]

3 голосов
/ 12 октября 2019

Когда вы используете prinf, вам не нужно указывать переменную в качестве ссылки. Функция ожидает целые числа или число с плавающей точкой, а не указатель.

Это должно исправить это:

printf("sales = %i\n", sales);
printf("Commision: ");
printf("%f", commision);
0 голосов
/ 12 октября 2019

Не используйте '&' для печати значения переменной в выражении printf. Обычно он выводит некоторое значение мусора (или 0, как в вашем случае). Я думаю, что это должно решить вашу проблему:

printf("Sales: ");
printf("sales = %f", sales);
printf("Commision: ");
printf("%f", commision);
...