C/C++

Почему данная программа после всех вычислений в консоли выдает в итоге "о"?

Int DOHOD(int srok, int stavka, int vklad)
{
int dohod = ((vklad * (stavka / 100)) / 12) * srok;

return dohod;
}

int main()
{
int srok, stavka, vklad, dohod;

printf("\nEnter the deposit amount: ");
scanf("%d", &vklad);
printf("\nEnter the current interest rate: ");
scanf("%d", &stavka);
printf("\nEnter the deposit term: ");
scanf("%d", &srok);

printf("\nYour income was = %d", DOHOD(srok, stavka, vklad));

}
// C++ language
#include <iostream>
using namespace std;
unsigned integer(const char* msg) {
cout << msg;
unsigned value;
cin >> value;
cin.ignore(cin.rdbuf()->in_avail());
return value;
}
unsigned income(unsigned deposit, unsigned rate, unsigned term) {
return static_cast<unsigned>(rate / 100.0 * deposit / 12 * term);
}
int main() {
system("chcp 1251 > nul");
auto deposit = integer("Размер вклада: ");
auto rate = integer("Процентная ставка: ");
auto term = integer("Срок в месяцах: ");
auto profit = income(deposit, rate, term);
cout << "Ваш доход составляет: " << profit << '\n';
system("pause > nul");
}

// C language
#include <stdlib.h>
#include <stdio.h>
unsigned integer(const char* msg) {
printf(msg);
unsigned value;
scanf_s("%u", &value);
while (getchar() != '\n');
return value;
}
unsigned income(unsigned deposit, unsigned rate, unsigned term) {
return (unsigned)(rate / 100.0 * deposit / 12 * term);
}
int main() {
system("chcp 1251 > nul");
unsigned deposit = integer("Размер вклада: ");
unsigned rate = integer("Процентная ставка: ");
unsigned term = integer("Срок в месяцах: ");
unsigned profit = income(deposit, rate, term);
printf("Ваш доход составляет: %u\n", profit);
system("pause > nul");
}
Дастан Калмаматов
Дастан Калмаматов
60 412
Лучший ответ
Сакен Шугаюпов мой ответ выше правильный?
#include<stdio.h>

float DOHOD(int srok, float stavka, float vklad)
{
float dohod = ((vklad * (stavka / 100)) / 12) * srok;
return dohod;
}
int main()
{
int srok;
float stavka, vklad, dohod;
printf("\nEnter the deposit amount: ");
scanf("%f", &vklad);
printf("\nEnter the current interest rate: ");
scanf("%f", &stavka);
printf("\nEnter the deposit term: ");
scanf("%d", &srok);
printf("\nYour income was = %.2f", DOHOD(srok, stavka, vklad));
}
Hamro Ismoilov
Hamro Ismoilov
37 945
у ставки тип Int. stavka / 100 (если stavka < 100, то в выражении будет 0). наверно

попробуй делить на 100 и на 12 в самом конце
главное чтоб переполнения не было.
или попробуй поменять тип ставки на float или double. Тогда и у дохода наверно надо будет тип поменять или привести к типу Int явно.
//я не сишник, остаточная информация
Артем Чернов
Артем Чернов
19 655