mir Опубликовано 26 августа, 2010 Жалоба Поделиться Опубликовано 26 августа, 2010 Занялся на досуге изучением С++. Есть ли кто, кто соображает, так как появляются вопросы, а ответы найти не могу. Ссылка на комментарий Поделиться на другие сайты Поделиться
KoZma Опубликовано 26 августа, 2010 Жалоба Поделиться Опубликовано 26 августа, 2010 mir, дык люди давно уже не C# перешли Ссылка на комментарий Поделиться на другие сайты Поделиться
mir Опубликовано 26 августа, 2010 Автор Жалоба Поделиться Опубликовано 26 августа, 2010 я думаю, что разница не большая, а как начальный этап подойдет. Ссылка на комментарий Поделиться на другие сайты Поделиться
ACE Опубликовано 26 августа, 2010 Жалоба Поделиться Опубликовано 26 августа, 2010 На С++ последний раз в универе писал года 3-4 назад, сейчас на работе только C#. Ну если вопросы какие несложные - спрашивай, чем смогу) Ссылка на комментарий Поделиться на другие сайты Поделиться
mir Опубликовано 26 августа, 2010 Автор Жалоба Поделиться Опубликовано 26 августа, 2010 Вот есть такая задачка. В результате должно получиться число с сотыми, а получается или целое число или с десятитысячными. #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"; Ссылка на комментарий Поделиться на другие сайты Поделиться
LoLka Опубликовано 26 августа, 2010 Жалоба Поделиться Опубликовано 26 августа, 2010 так че за ошибку то пишет? И я не заметил где переменная "fixed" объявляется. Ссылка на комментарий Поделиться на другие сайты Поделиться
mir Опубликовано 26 августа, 2010 Автор Жалоба Поделиться Опубликовано 26 августа, 2010 (изменено) иаправил, добавил объявление переменной. #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 сейчас ошибку не выдает, но выдает предупреждение. Изменено 26 августа, 2010 пользователем mir Ссылка на комментарий Поделиться на другие сайты Поделиться
LoLka Опубликовано 26 августа, 2010 Жалоба Поделиться Опубликовано 26 августа, 2010 (изменено) объявить - объявил, а проинициализировать - забыл пиши сразу double fixed = 0; Изменено 26 августа, 2010 пользователем LoLka Ссылка на комментарий Поделиться на другие сайты Поделиться
ACE Опубликовано 26 августа, 2010 Жалоба Поделиться Опубликовано 26 августа, 2010 А какую ошибку выдает? Попробуй вот так cout << "srednyy ocenka ravna" << fixed << setprecision ( 2 ) << average <<"\n"; Ссылка на комментарий Поделиться на другие сайты Поделиться
mir Опубликовано 26 августа, 2010 Автор Жалоба Поделиться Опубликовано 26 августа, 2010 объявить - объявил, а проинициализировать - забыл пиши сразу 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;} Ссылка на комментарий Поделиться на другие сайты Поделиться
ACE Опубликовано 26 августа, 2010 Жалоба Поделиться Опубликовано 26 августа, 2010 так че за ошибку то пишет? И я не заметил где переменная "fixed" объявляется. fixed это не переменная, это т.н. formatflag задающий способ отображения числа с плавающей точкой..как-то так. Тут подробнее: http://www.cplusplus.com/reference/iostream/manipulators/setprecision/ Ссылка на комментарий Поделиться на другие сайты Поделиться
mir Опубликовано 26 августа, 2010 Автор Жалоба Поделиться Опубликовано 26 августа, 2010 после последних изменений выдает все равно целое число, но в ответе ставит перед числом 0 А какую ошибку выдает? Попробуй вот так cout << "srednyy ocenka ravna" << fixed << setprecision ( 2 ) << average <<"\n"; ничего не изменилось. Ссылка на комментарий Поделиться на другие сайты Поделиться
LoLka Опубликовано 26 августа, 2010 Жалоба Поделиться Опубликовано 26 августа, 2010 (изменено) fixed это не переменная, это т.н. formatflag задающий способ отображения числа с плавающей точкой..как-то так. Тут подробнее: http://www.cplusplus.com/reference/iostream/manipulators/setprecision/ точно, тогда правильно будет такопределил уже.Попробуй поправить так, если не поможет, то надо искать ошибку не в коде. #include <iostream> #include <iomanip> using namespace std; Изменено 26 августа, 2010 пользователем LoLka Ссылка на комментарий Поделиться на другие сайты Поделиться
mir Опубликовано 26 августа, 2010 Автор Жалоба Поделиться Опубликовано 26 августа, 2010 сделал как вы сказали. выдает ошибку #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; } Ссылка на комментарий Поделиться на другие сайты Поделиться
KoZma Опубликовано 26 августа, 2010 Жалоба Поделиться Опубликовано 26 августа, 2010 int main() эээ... а C++ какой версии? чета очень сильно институт вспомниется с версией 3.5 под dos Ссылка на комментарий Поделиться на другие сайты Поделиться
ACE Опубликовано 26 августа, 2010 Жалоба Поделиться Опубликовано 26 августа, 2010 > double fixed; > fixed =0; вот эти сторки убери, т.к. fixed это не переменная (я написал выше). Сейчас он тебе её перед числом и выводит - она равна нулю. Ссылка на комментарий Поделиться на другие сайты Поделиться
mir Опубликовано 26 августа, 2010 Автор Жалоба Поделиться Опубликовано 26 августа, 2010 так я их убрал Ссылка на комментарий Поделиться на другие сайты Поделиться
ACE Опубликовано 26 августа, 2010 Жалоба Поделиться Опубликовано 26 августа, 2010 Просмотр сообщенияACE (26 Август 2010 - 11:04) писал:А какую ошибку выдает? Попробуй вот так cout << "srednyy ocenka ravna" << fixed << setprecision ( 2 ) << average <<"\n"; ничего не изменилось. что выводит-то? сделал как вы сказали.выдает ошибку какую ошибку? Ссылка на комментарий Поделиться на другие сайты Поделиться
mir Опубликовано 26 августа, 2010 Автор Жалоба Поделиться Опубликовано 26 августа, 2010 indefined symbol 'fixed' Ссылка на комментарий Поделиться на другие сайты Поделиться
ACE Опубликовано 26 августа, 2010 Жалоба Поделиться Опубликовано 26 августа, 2010 добавь using namespace std; после инклюдов Ссылка на комментарий Поделиться на другие сайты Поделиться
LoLka Опубликовано 26 августа, 2010 Жалоба Поделиться Опубликовано 26 августа, 2010 попробуй так #include <iostream.h> #include <iomanip.h> Ссылка на комментарий Поделиться на другие сайты Поделиться
ACE Опубликовано 26 августа, 2010 Жалоба Поделиться Опубликовано 26 августа, 2010 программирование методом научного тыка Ссылка на комментарий Поделиться на другие сайты Поделиться
LoLka Опубликовано 26 августа, 2010 Жалоба Поделиться Опубликовано 26 августа, 2010 программирование методом научного тыка ну а как еще, через форум только так Ссылка на комментарий Поделиться на другие сайты Поделиться
mir Опубликовано 26 августа, 2010 Автор Жалоба Поделиться Опубликовано 26 августа, 2010 #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; после инклюдов - выдает вторую ошибку. я это решение задачи переписал один к одному из книги, но она почему то не идет. Ссылка на комментарий Поделиться на другие сайты Поделиться
LoLka Опубликовано 26 августа, 2010 Жалоба Поделиться Опубликовано 26 августа, 2010 (изменено) я это решение задачи переписал один к одному из книги, но она почему то не идет. попробуй как я выше написал #include <iostream.h> #include <iomanip.h> а книги всякие бывают... некоторые с примерами, которые работают только после доработки напильником Изменено 26 августа, 2010 пользователем LoLka Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Пожалуйста, войдите, чтобы комментировать
Вы сможете оставить комментарий после входа в
Войти