Форум программистов, компьютерный форум CyberForum.ru

Что не так с приведённым ниже кодом? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Написать программу обработки файла типа запись http://www.cyberforum.ru/cpp-beginners/thread311541.html
Написать программу обработки файла типа запись, содержащую следующие пункты меню: - Создание, - Просмотр, - Коррекция – добавление новых данных или исправление старых, - Выполнение требуемых действий. 1. Для книг, хранящихся в библиотеке, задаются: - регистрационный номер книги; - автор;
C++ Дана последовательность из n вещественных чисел. Задания выполнять без использования массивов. Числа вводить и обрабатывать в цикле. Дана последовательность из n вещественных чисел. Найти наиболее длинную последовательность подряд идущих нулей. http://www.cyberforum.ru/cpp-beginners/thread311539.html
C++ Составить функцию Run
Составить функцию Run которая позволит выполнить следующие действия с двухмерными массивами Определить: количество строк, среднее арифметическое элементов которых меньше заданной величины.
Определить: количество строк, не содержащих ни одного нулевого элемента; C++
Составить функцию Run которая позволит выполнить следующие действия с двухмерными массивами (если задачу решить нельзя, то сообщит об этом): Определить: количество строк, не содержащих ни одного нулевого элемента;
C++ Перевод из HEX в ASCII и ещё кое - что http://www.cyberforum.ru/cpp-beginners/thread311452.html
Народ, как строку в HEX типа 3A 30 31 30 36 перевести в ASCII типа :0106 ? А как наоборот? А самое интересное, как из HEX перевести эту же строку 3A 30 31 30 36 в DEC ? (десятичную систему)
C++ С++, Указатели, строки,файлы. Дорогие программисты! У меня к вам очень большая просьба, считайте я стою перед вами на коленях. Я 2 курсник и C++ изучаю первый год! Как изучаю?! Проболел 2 месяца почти. мне грозятся академической. Я вас прошу Помогите мне с решением задач. Нужно решить не очень замудренно, ну понимаете 1 семестр изучения C++, задачи . САМЫЕ АКТИВНЫЕ ПОЛУЧАТ ДЕНЬГИ НА ИХ МОБИЛЬНЫЕ (только номера писать в ЛС) в... подробнее

Показать сообщение отдельно
Kastaneda
Модератор
Эксперт С++
 Аватар для Kastaneda
4248 / 2780 / 219
Регистрация: 12.12.2009
Сообщений: 7,109
Записей в блоге: 1
Завершенные тесты: 1
03.06.2011, 11:53     Что не так с приведённым ниже кодом?
Цитата Сообщение от Noti Посмотреть сообщение
Задали вопрос что не так в том куске кода. Я сказала что
"ну первое что приходит на ум - это i должно быть до n/2, так как если мы ищем одинаковые символы, то можно допустить, что этот символ встретится только один раз в строке, а значит переменным k и t будет присвоено одинаковое значение, чего нам не надо.", ответили что первая половина - правильно, вторая - нет.
У вас препод неумный) Неправильно ни чего. Цикл здесь нафиг не нужен, т.к. s.find(':') и s.rfind(':') всегда будет возвращать одно и то же значение. find - вернет позицию первого вхождения символа ':', а rfind - последнего вхождения. На выходе имеет строку до первого ':' (включительно) и после последнего ':' (тоже включительно).
И, раз уж работаем со string'ом, а не с char*, то делается это так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include "iostream"
 #include <cstdio>
 #include "string"
 using namespace std;
 int main(){
 
 
 freopen("input.txt", "rt", stdin);
 freopen("output.txt", "wt", stdout);
 
 string s;
 getline(cin,s);
 cout<<s.substr(0,s.find(':')+1)<<s.substr(s.rfind(':'))<<endl;
 return 0;
 }
)))

Добавлено через 1 минуту
если мы ищем одинаковые символы, то можно допустить, что этот символ встретится только один раз
???
 
Текущее время: 21:40. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru