C++ не выводится вещественное число [дубликат]

122
26 декабря 2019, 01:40
This question already has an answer here:
При делении чисел пропадает дробная часть (1 ответ)
Закрыт 9 месяцев назад.
#include<iostream>
#include<string>
#include <sstream>
 using std::cout;
 using std::cin;
 using std::endl;
 using std::string;
 using std::stringstream;
 class questions {
  private:
   string name;
   string lastname;
   int rate_list[50];
   int rate_count;
   float middle;
  public:
   void read_name(){
    cout << "Your name" << endl;
    cin >> name;
 }
   string get_name(){
    return (name);
 }
   void read_lastname(){
    cout << "Your lastname" << endl;
    cin >> lastname;
    cin.ignore ();
   }
   string get_lastname(){
    return (lastname);
   }
   float get_middle(){
    return(middle);
   }
  void read_rate_list(){
  rate_count = 0;
  //rate_count ++;
  string rate_line, rate_word;
  int summa = 0;
  int value = 0;
  cout << "Enter your grades (separate by space)" << endl;
  cin.clear();
  getline(cin, rate_line);
  stringstream potok(rate_line);
  while (potok >> rate_word) {
   if (rate_word == "1" || rate_word == "2" || rate_word == "3" || rate_word == "4" || rate_word == "5") {
       //cout << rate_word;
       value = stoi(rate_word);
      // cout << value << endl;
       rate_list[rate_count] = value;
       summa += value;
       rate_count++;
    }
  }
  middle = summa / rate_count;
 }
 int* get_rate_list() {
 return(rate_list);
}
};
int main(){
 questions persone1;
 persone1.read_name();
 persone1.read_lastname();
 persone1.read_rate_list();
 cout << persone1.get_name() << endl;
 cout << persone1.get_lastname() << endl;
 cout  << persone1.get_middle() << endl;
// cout << persone1

} Выводит целое число, а надо вещественное. Заранее спасибо

Answer 1

Вы делите

summa / rate_count;

целое на целое - и деление получается целочисленное, т.е. дающее целое число...

Сделайте, например, так:

float(summa) / rate_count;
READ ALSO
Как сохранять данные в файле txt C++

Как сохранять данные в файле txt C++

Дело в том что, мне нужно сохранить данные в файле, таким образом, чтобы оно не перезаписывалось опять, а прибавлялось к имеющему переменному...

175
libssh2 и LIBSSH2_ERROR_SOCKET_SEND

libssh2 и LIBSSH2_ERROR_SOCKET_SEND

Подскажите что делаю не так!? Вроде все по примеру, а не выходит каменный цветок на libssh2_userauth_publickey_fromfile выпадает с ошибкой -7 при этом libssh2_userauth_list...

146
кривой поворот текстуры

кривой поворот текстуры

пишу программу, которая рисует сферу, накладывает на нее текстуру земли и та в итоге вращается вокруг своей оси

146
Проверка истинности выражения

Проверка истинности выражения

С клавиатуры через пробел вводится: строка str1, знак операции < > == >= <= != , строка str2

193