21.01.2016 / 15:21 | |
Pauk52 Пользователь Сейчас: Offline
Имя: Володимир Откуда: Пески-радьковские Регистрация: 25.01.2011
| Актуальна ли на данный момент книга Брюс Эккель, Чак Эллисон - Философия C++. Часть 1. Введение в стандартный C++ , 2004 год издания? Нужна хорошая книжечка для продолжения изучения с++ , после книги базовый курс с++, шилдт
|
21.01.2016 / 20:29 | |
Naik Пользователь Сейчас: Offline
Имя: %name% Регистрация: 14.03.2010
| Pauk52, если нужен С++11..17 то нет конечно
|
24.01.2016 / 12:01 | |
Helltar Пользователь Сейчас: Offline
Регистрация: 29.11.2011
| Изменено Helltar (24.01 / 12:02) (всего 1 раз) |
24.01.2016 / 12:03 | |
deweh Пользователь
| Helltar, Стоковая прошивка на андроиде - да. А остальные пойдут.
|
24.01.2016 / 12:13 | |
Naik Пользователь Сейчас: Offline
Имя: %name% Регистрация: 14.03.2010
| deweh, можно, см. NDK
|
24.01.2016 / 16:57 | |
Pauk52 Пользователь Сейчас: Offline
Имя: Володимир Откуда: Пески-радьковские Регистрация: 25.01.2011
| подскажите где у меня ошибка, условие, если попадается больше одного билета за одну партию счетчик не увеличиваться Открыть спойлер Закрыть спойлер #include <iostream>
#include <string>
using namespace std;
int main()
{
int n,m;
string str;
cin >> n >> m;
int parties[n];
int *p = parties;
for (int i=0; i < n;i++) {
*(p+i)=0;
}
for (int i = 0; i < m; i++){
cin >> str;
int k=0, index=0;
for (int j = 0; j < n; j++){
if (str[j]=='+' && k < 1) {
index = j;
k++;
}
if(j==n-1 && k==1) {
*(p+index)=+1;
}
}
}
for (int i=0; i < n;i++) {
cout << *(p+i) << " ";
}
}
Изменено Pauk52 (24.01 / 16:59) (всего 2 раза) |
24.01.2016 / 21:03 | |
mrEDitor Пользователь Сейчас: Offline
Имя: Эдуард Откуда: Новороссийск » Таганрог Регистрация: 13.03.2011
| Pauk52, вот ошибка: не увеличивае тся (что делае т?) Ну, и ещё у тебя вместо += написано =+. А вообще, я тут весь код разобрал. И да, у тебя есть ещё прикольная ошибочка, поищи сам её. Условие перечитай. Проверил? Проверил? int n,m;
string str;
cin >> n >> m;
int parties[n];
/* Это, по-видимому, будет ответ, т.е. количество зачтённых голосов
* для каждой партии. Окей.
*/
int *p = parties; // Кстати, учитывая, что ты не изменяешь p, зачем копировать?
for (int i=0; i < n;i++) {
*(p+i)=0;
}
/* Я посмотрел на календарик, там написано "2016". Зачем в 2016-ом использовать
* обращение по указателю со сдвигом при вводе одномерного массива чисел?
* Неужели так красивее, чем
parties[i] = 0;
*/
for (int i = 0; i < m; i++){ // Для каждого бюллетеня...
cin >> str; // Прочесть его ввод в строку...
int k=0, index=0;
for (int j = 0; j < n; j++){ // Для каждой партии в бюллетене...
if (str[j]=='+' && k < 1) { // Если (пока что) только за эту партию...
index = j;
k++; // Сохранить это всё дело. Окей.
}
if(j==n-1 && k==1) {
/* Если это последняя партия в бюллетене!? Какого вообще чёрта!?
* Почему бы просто не вынести это условие наружу, из цикла?
*/
(p+index)=+1;
/* Тому, за которого стоит единственный плюс – поставить один голос?
* (Кстати, снова привет дяде Ритчи и его указателям вместо массива.
* Наверное, имелось в виду что-то вроде:
parties[index] += 1;
* Я бы даже инкрементом сделал.
*/
}
}
}
for (int i=0; i < n;i++) { // Выводим ответы для каждой партии.
cout << *(p+i) << " "; // А точнее, количество голосов за неё.
}
/* По-моему, в ответе было нужно было вывести *номера* партий, которые
* получили не менее 7% от всех действительных голосов.
*/
Изменено mrEDitor (24.01 / 21:06) (всего 3 раза) |
24.01.2016 / 21:48 | |
Pauk52 Пользователь Сейчас: Offline
Имя: Володимир Откуда: Пески-радьковские Регистрация: 25.01.2011
| mrEDitor, просто перфекто , в поисках проблемы инкремент был заменен на =+. А указатели были использованы как панацея, и дебагер в qtcreatot`e не показывает содержания массива, а указателя да. Открыть спойлер Закрыть спойлер int *p = parties; // Кстати, учитывая, что ты не изменяешь p, зачем копировать?
// какое копирование?
if(j==n-1 && k==1) {
/* Если это последняя партия в бюллетене!? Какого вообще чёрта!?
* Почему бы просто не вынести это условие наружу, из цикла?
*/
// _______________
// если бюллетень валидный то засчитать голос
|
25.01.2016 / 00:03 | |
DominaN Пользователь Сейчас: Offline
Имя: Кирилл Откуда: Смоленск Регистрация: 28.09.2011
| а потом Единая Россия 120% голосов набирает |