Перейти к содержанию
Форум Челябинских Автомобилистов

программирование С++


Рекомендуемые сообщения

Закрепленные сообщения
Занялся на досуге изучением С++. Есть ли кто, кто соображает, так как появляются вопросы, а ответы найти не могу.
Ссылка на комментарий
Поделиться на другие сайты

  • Ответов 52
  • Создана
  • Последний ответ

Топ авторов темы

Популярные дни

Топ авторов темы

Популярные дни

Незакрепленные сообщения
я думаю, что разница не большая, а как начальный этап подойдет.
Ссылка на комментарий
Поделиться на другие сайты

На С++ последний раз в универе писал года 3-4 назад, сейчас на работе только C#. Ну если вопросы какие несложные - спрашивай, чем смогу)
Ссылка на комментарий
Поделиться на другие сайты

Вот есть такая задачка. В результате должно получиться число с сотыми, а получается или целое число или с десятитысячными.

 

#include <iostream>

#include <stdlib>

#include <iomanip>

 

 

int main()

{

double total; // summa ocenok

double gradeCounter; // chislo vvedennih ocenok

double grade; // odna ocenka

float average; // chislo c desytichnoi tochkoi dly ocenki

 

// faza inicializacii

total = 0; // inicializaciy total

gradeCounter = 0; // inicializaciy schetchika cikla

 

// faza obrabotki

// poluchit pervuu ocenku

cout << "vvedite ocenku ili -1 dly zaversheniy\n";

cin >> grade;

 

// vipolnenie cikla do polucheniy sentinel value ot polzovately

while (grade != -1)

 

{

total = total + grade;

gradeCounter = gradeCounter + 1;

 

cout << "vvedite ocenku ili -1 dly zaversheniy\n";

cin >> grade;

 

} // konec while

 

// faza zaversheniy

// esli polzovatel, po krainei mere odnu ocenku

if (gradeCounter != 0)

 

{

 

// vichislenie srednei iz vseh vvedennih ocenok

average = static_cast< double > (total) / gradeCounter;

 

// otobragenie srednei ocenki s tochnostu do dvuh razrydov

cout << "srednyy ocenka ravna" << setprecision ( 2 ) << fixed << average <<"\n";

 

}

else // esli ne vvedeni ocenki, vivod soobsheniy

cout << "net dannih\n";

 

system ("pause");

return 0;

}

 

В данном случае выдает ошибку.

 

что то не так в этих строках:

 

// otobragenie srednei ocenki s tochnostu do dvuh razrydov

cout << "srednyy ocenka ravna" << setprecision ( 2 ) << fixed << average <<"\n";

Ссылка на комментарий
Поделиться на другие сайты

иаправил, добавил объявление переменной.

#include <iostream>

#include <stdlib>

#include <iomanip>

 

 

int main()

{

double total; // summa ocenok

double gradeCounter; // chislo vvedennih ocenok

double grade; // odna ocenka

double fixed;

double average; // chislo c desytichnoi tochkoi dly ocenki

 

// faza inicializacii

total = 0; // inicializaciy total

gradeCounter = 0; // inicializaciy schetchika cikla

 

// faza obrabotki

// poluchit pervuu ocenku

cout << "vvedite ocenku ili -1 dly zaversheniy\n";

cin >> grade;

 

// vipolnenie cikla do polucheniy sentinel value ot polzovately

while (grade != -1)

 

{

total = total + grade;

gradeCounter = gradeCounter + 1;

 

cout << "vvedite ocenku ili -1 dly zaversheniy\n";

cin >> grade;

 

} // konec while

 

// faza zaversheniy

// esli polzovatel, po krainei mere odnu ocenku

if (gradeCounter != 0)

 

{

 

// vichislenie srednei iz vseh vvedennih ocenok

average = static_cast< double > (total) / gradeCounter;

 

// otobragenie srednei ocenki s tochnostu do dvuh razrydov

cout << "srednyy ocenka ravna" << setprecision ( 2 ) << fixed << average <<"\n";

 

}

else // esli ne vvedeni ocenki, vivod soobsheniy

cout << "net dannih\n";

 

system ("pause");

return 0;

}

 

пишет: Possible use of 'fixed' before definition

 

сейчас ошибку не выдает, но выдает предупреждение.

Изменено пользователем mir
Ссылка на комментарий
Поделиться на другие сайты

объявить - объявил, а проинициализировать - забыл :)

пиши сразу

double fixed = 0;
Изменено пользователем LoLka
Ссылка на комментарий
Поделиться на другие сайты

А какую ошибку выдает?

 

Попробуй вот так

 

cout << "srednyy ocenka ravna" << fixed << setprecision ( 2 ) << average <<"\n";

Ссылка на комментарий
Поделиться на другие сайты

объявить - объявил, а проинициализировать - забыл :)

пиши сразу

double fixed = 0;
спасибо, ошибок сейчас нет, но выдает целое число в ответе.

Я сделал так:

 

#include <iostream>

#include <stdlib>

#include <iomanip>

 

 

int main()

{

double total; // summa ocenok

double gradeCounter; // chislo vvedennih ocenok

double grade; // odna ocenka

double fixed;

double average; // chislo c desytichnoi tochkoi dly ocenki

 

// faza inicializacii

total = 0; // inicializaciy total

gradeCounter = 0; // inicializaciy schetchika cikla

fixed =0;

// faza obrabotki

// poluchit pervuu ocenku

cout << "vvedite ocenku ili -1 dly zaversheniy\n";

cin >> grade;

 

// vipolnenie cikla do polucheniy sentinel value ot polzovately

while (grade != -1)

 

{

total = total + grade;

gradeCounter = gradeCounter + 1;

 

cout << "vvedite ocenku ili -1 dly zaversheniy\n";

cin >> grade;

 

} // konec while

 

// faza zaversheniy

// esli polzovatel, po krainei mere odnu ocenku

if (gradeCounter != 0)

 

{

 

// vichislenie srednei iz vseh vvedennih ocenok

average = static_cast< double > (total) / gradeCounter;

 

// otobragenie srednei ocenki s tochnostu do dvuh razrydov

cout << "srednyy ocenka ravna" << setprecision ( 2 ) << fixed << average <<"\n";

 

}

else // esli ne vvedeni ocenki, vivod soobsheniy

cout << "net dannih\n";

 

system ("pause");

return 0;

}

Ссылка на комментарий
Поделиться на другие сайты

так че за ошибку то пишет? :)

И я не заметил где переменная "fixed" объявляется.

 

 

fixed это не переменная, это т.н. formatflag задающий способ отображения числа с плавающей точкой..как-то так. Тут подробнее: http://www.cplusplus.com/reference/iostream/manipulators/setprecision/
Ссылка на комментарий
Поделиться на другие сайты

после последних изменений выдает все равно целое число, но в ответе ставит перед числом 0

 

А какую ошибку выдает?

 

Попробуй вот так

 

cout << "srednyy ocenka ravna" << fixed << setprecision ( 2 ) << average <<"\n";

 

ничего не изменилось.
Ссылка на комментарий
Поделиться на другие сайты

fixed это не переменная, это т.н. formatflag задающий способ отображения числа с плавающей точкой..как-то так. Тут подробнее: http://www.cplusplus.com/reference/iostream/manipulators/setprecision/

 

точно, тогда правильно будет так

определил уже.

Попробуй поправить так, если не поможет, то надо искать ошибку не в коде.

#include <iostream>
#include <iomanip>
using namespace std;
Изменено пользователем LoLka
Ссылка на комментарий
Поделиться на другие сайты

сделал как вы сказали.

выдает ошибку

#include <iostream>

#include <stdlib>

#include <iomanip>

 

 

int main()

{

double total; // summa ocenok

double gradeCounter; // chislo vvedennih ocenok

double grade; // odna ocenka

double average; // chislo c desytichnoi tochkoi dly ocenki

 

// faza inicializacii

total = 0; // inicializaciy total

gradeCounter = 0; // inicializaciy schetchika cikla

 

 

// faza obrabotki

// poluchit pervuu ocenku

cout << "vvedite ocenku ili -1 dly zaversheniy\n";

cin >> grade;

 

// vipolnenie cikla do polucheniy sentinel value ot polzovately

while (grade != -1)

 

{

total = total + grade;

gradeCounter = gradeCounter + 1;

 

cout << "vvedite ocenku ili -1 dly zaversheniy\n";

cin >> grade;

 

} // konec while

 

// faza zaversheniy

// esli polzovatel, po krainei mere odnu ocenku

if (gradeCounter != 0)

 

{

 

// vichislenie srednei iz vseh vvedennih ocenok

average = static_cast< double > (total) / gradeCounter;

 

// otobragenie srednei ocenki s tochnostu do dvuh razrydov

cout << "srednyy ocenka ravna" <<fixed << setprecision ( 2 ) << average <<"\n";

 

}

else // esli ne vvedeni ocenki, vivod soobsheniy

cout << "net dannih\n";

 

system ("pause");

return 0;

}

Ссылка на комментарий
Поделиться на другие сайты

> double fixed;

> fixed =0;

 

вот эти сторки убери, т.к. fixed это не переменная (я написал выше). Сейчас он тебе её перед числом и выводит - она равна нулю.

Ссылка на комментарий
Поделиться на другие сайты

Просмотр сообщенияACE (26 Август 2010 - 11:04) писал:

А какую ошибку выдает?

 

Попробуй вот так

 

cout << "srednyy ocenka ravna" << fixed << setprecision ( 2 ) << average <<"\n";

 

ничего не изменилось.

 

 

что выводит-то?

 

сделал как вы сказали.

выдает ошибку

 

какую ошибку?
Ссылка на комментарий
Поделиться на другие сайты

#include <iostream>

#include <stdlib>

#include <iomanip>

 

 

 

int main()

{

int total; // summa ocenok

int gradeCounter; // chislo vvedennih ocenok

int grade; // odna ocenka

double average; // chislo c desytichnoi tochkoi dly ocenki

 

// faza inicializacii

total = 0; // inicializaciy total

gradeCounter = 0; // inicializaciy schetchika cikla

 

 

// faza obrabotki

// poluchit pervuu ocenku

cout << "vvedite ocenku ili -1 dly zaversheniy\n";

cin >> grade;

 

// vipolnenie cikla do polucheniy sentinel value ot polzovately

while (grade != -1)

 

{

total = total + grade;

gradeCounter = gradeCounter + 1;

 

cout << "vvedite ocenku ili -1 dly zaversheniy\n";

cin >> grade;

 

} // konec while

 

// faza zaversheniy

// esli polzovatel, po krainei mere odnu ocenku

if (gradeCounter != 0)

 

{

 

// vichislenie srednei iz vseh vvedennih ocenok

average = static_cast< double > (total) / gradeCounter;

 

// otobragenie srednei ocenki s tochnostu do dvuh razrydov

cout << "srednyy ocenka ravna" << fixed << setprecision ( 2 ) << average <<"\n";

 

}

else // esli ne vvedeni ocenki, vivod soobsheniy

cout << "net dannih\n";

 

system ("pause");

return 0;

}

 

добавь using namespace std; после инклюдов - выдает вторую ошибку.

 

я это решение задачи переписал один к одному из книги, но она почему то не идет.

Ссылка на комментарий
Поделиться на другие сайты

я это решение задачи переписал один к одному из книги, но она почему то не идет.

 

попробуй как я выше написал

#include <iostream.h>
#include <iomanip.h>
а книги всякие бывают... некоторые с примерами, которые работают только после доработки напильником :D Изменено пользователем LoLka
Ссылка на комментарий
Поделиться на другие сайты

Пожалуйста, войдите, чтобы комментировать

Вы сможете оставить комментарий после входа в



Войти
  • Сейчас на странице   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу

×
×
  • Создать...