 |
Вітаю Вас, Гість · RSS |
 |
Мова С++ (поради, запитання....)
| |
Bandalak |
Дата: Tu, 11.12.2018, 16:59 | Повідомлення № 31 |
Лідер форуму
Повідомлень: 6386
| Код Задача (С++): Дано ціле одноцифрове число. Піднести його до квадрату. Перетворити результат на рядок. Кожен символ цього рядка перетворити назад на цифру та обчислити їх суму.
На Паскалі робиться легенько, як два пальці об....
Код var t:string; s,n,i,c,e:integer; begin readln(c); {Читаємо число} c:=c*c; {Підносимо число до квадрату} str(c,t); {Перетворюємо чмсло на рядок} n:=length(t); {знаходимо кількість символів у рядку} s:=0; {занулюємо суму} for i:=1 to n do begin val(t[i],c,e); {Перетворюємо кожин символ рядка на окрему цифру} s:=s+c {Сумуємо} end; writeln(s); {Виводимо результат} end.
А от з С++ печалька.
Як на С++ перетворити ціле число на рядок і навпаки, рядок на число?
Наприклад, у Паскалі це вбудовані процедури STR(a,t) та VAL(t,a,e). Відповідників на С++ не знайшов. Точніше знайшов щось занадто розумне і розібратися не зміг.
|
|
| |
gromko |
Дата: Tu, 11.12.2018, 19:20 | Повідомлення № 32 |
Лінуксоїд
Повідомлень: 3210
| Цитата Bandalak (  ) А от з С++ печалька. Чому? Все теж саме:
Код #include <iostream>
using namespace std;
int main() { int sum; int i; int c; int n; string ss; int cc; cout << "Введіть число:" << flush; string s; /* Куди буде введено число */ getline(std::cin, s);/* Читаємо число як рядок */ c = stoi(s); /* Перетворюємо рядок в число */ c=c*c; /* Підносимо число до квадрату */ cout << c << '\n'; /* Просто щоб побачити квадрат :) */ ss=to_string(c); /* Перетворюємо число у рядок*/ n=ss.length(); /* Знаходимо кількість символів у рядку */ sum=0; /* занулюємо суму */ for (i = 0; i < n; i++ ) { cc=ss[i]-'0'; /* Перетворюємо кожен символ на окреме число */ sum=sum+cc; /* Знаходимо суму */ } cout << sum << '\n'; cout<<"Завдання закінчено"; }[/i]
Відредаговано: gromko - Tu, 11.12.2018, 19:21 |
|
| |
Bandalak |
Дата: We, 12.12.2018, 19:21 | Повідомлення № 33 |
Лідер форуму
Повідомлень: 6386
| В онлайн редакторі вона працює, а в CodeBlock ні. Видає помилку на ss=to_string©. Що не так?
|
|
| |
swetikccc |
Дата: We, 12.12.2018, 20:18 | Повідомлення № 34 |
Ветеран спілкування
Повідомлень: 4208
| А допишіть напочатку #include <string> Просто в С++ є два типи рядочків Масив типу char i клас string. Для використання усіх функцій класу підключіть бібліотеку.
|
|
| |
Bandalak |
Дата: We, 12.12.2018, 21:05 | Повідомлення № 35 |
Лідер форуму
Повідомлень: 6386
| Дописали, не пройшло
|
|
| |
swetikccc |
Дата: We, 12.12.2018, 21:25 | Повідомлення № 36 |
Ветеран спілкування
Повідомлень: 4208
| Прикріпіть файлик, завтра в школі подивлюся на CodeBlock
|
|
| |
Bandalak |
Дата: We, 12.12.2018, 22:27 | Повідомлення № 37 |
Лідер форуму
Повідомлень: 6386
| ок
|
|
| |
mio |
Дата: We, 12.12.2018, 23:34 | Повідомлення № 38 |
Тут живе...
Повідомлень: 124
| Цитата Bandalak (  ) В онлайн редакторі вона працює, а в CodeBlock ні. Видає помилку на ss=to_string©. Що не так? В CodeBlocks у налаштуваннях компілятора (Налаштування-Компілятор...-Глобальні налаштування компілятора-Налаштування компілятора) необхідно відзначити прапорцем стандарт мови, наприклад, Have g++ follow the C++11 ISO C++ language standard (функція stoi доступна з С++ 11).
|
|
| |
gromko |
Дата: Th, 13.12.2018, 07:42 | Повідомлення № 39 |
Лінуксоїд
Повідомлень: 3210
| Цитата mio (  ) Have g++ follow the C++11 ISO C++ language standard Дякую, працює!
|
|
| |
swetikccc |
Дата: Th, 13.12.2018, 11:39 | Повідомлення № 40 |
Ветеран спілкування
Повідомлень: 4208
| Цитата Bandalak (  ) окПрикріплення: 123.txt(0.9 Kb) все працює Качаєте блок http://www.codeblocks.org/downloads/binaries ось цей без встановлення codeblocks-17.12mingw-nosetup.zip А ось шаблончик для української в подарунок
#include <windows.h> #include <iostream>
using namespace std;
int main() { SetConsoleCP(1251); SetConsoleOutputCP(1251); cout << "мир"; return 0;
}
Відредаговано: swetikccc - Th, 13.12.2018, 11:41 |
|
| |
gromko |
Дата: Th, 13.12.2018, 17:30 | Повідомлення № 41 |
Лінуксоїд
Повідомлень: 3210
| Цитата swetikccc (  ) А ось шаблончик для української в подарунок У мене наче й так була підтримка Unicode
|
|
| |
Apice |
Дата: Fr, 14.12.2018, 09:13 | Повідомлення № 42 |
Прописаний назавжди
Повідомлень: 246
| Цитата gromko (  ) У мене наче й так була підтримка Unicode У Linux така підтримка є без заморочок, а от у win частіше за все немає.
|
|
| |
Bandalak |
Дата: Fr, 14.12.2018, 12:31 | Повідомлення № 43 |
Лідер форуму
Повідомлень: 6386
| Цитата mio (  ) В CodeBlocks у налаштуваннях компілятора (Налаштування-Компілятор...-Глобальні налаштування компілятора-Налаштування компілятора) необхідно відзначити прапорцем стандарт мови, наприклад, Have g++ follow the C++11 ISO C++ language standard (функція stoi доступна з С++ 11). А онлайн перевірялки на олімпіаді якою версією компілятора користуються?
|
|
| |
Bandalak |
Дата: Fr, 14.12.2018, 12:34 | Повідомлення № 44 |
Лідер форуму
Повідомлень: 6386
| Цитата swetikccc (  ) ось цей без встановлення codeblocks-17.12mingw-nosetup.zip
Як воно може працювати без встановлення компілятора?
До речі, яку саме версію КодеБлок рекомендують використовувати на олімпіадах?
|
|
| |
swetikccc |
Дата: Fr, 14.12.2018, 13:25 | Повідомлення № 45 |
Ветеран спілкування
Повідомлень: 4208
| Цитата Bandalak (  ) Як воно може працювати без встановлення компілятора?
До речі, яку саме версію КодеБлок рекомендують використовувати на олімпіадах? Прочитайте спочатку про MinGW а потім питання. В мене ж працює. )))
Невірне питання. Яку версію мови С++?
Відредаговано: swetikccc - Fr, 14.12.2018, 13:27 |
|
| |
© Форум інформатиків України, 2007-2022.  |