Ответы на вопрос:
#include < iostream> #include < ctime> //нужно для генерации n - значных чисел using namespace std; int getrandval(int n); //функция генерирует случайное n-ое число //функция вернёт массив цифр составляющих число val //переменная n будет содержать число цифр в массиве //флаг bgetarray определяет записывать ли разряды в //массив или лишь ограничиться подсчётом разрядов числа int * splitvalue(int val, int & n, bool bgetarray); //функция проверяет состоит ли число только из нечётных чисел bool isvalueconsistonlynooddnumbers(int val); int main() { int i; int m; //будет содержать число чисел для анализа int n; //будет содержать число разрядов для чисел int sum; //будет содержать сумму чисел int cnt; //будет содержать кол-во n-значных чисел //состоящих только из нечётных значений int *arr = null; //указатель на массив с n-значн числами while(true) { system("cls"); cout< < "enter number values in array : "; cin> > m; cout< < "enter n digits in values : "; cin> > n; arr = new int[m]; cout< < "generated array of values\n"; for(i = 0; i < m; i++) cout< < (arr[i] = getrandval(n))< < endl; cout< < "values in array with only odd numbers\n"; for(sum = (cnt = (i = 0)); i < m; i++) { if(isvalueconsistonlynooddnumbers(arr[i])) { cout< < arr[i]< < endl; sum = sum + arr[i]; cnt = cnt + 1; } } delete [] arr; if(! cnt) cout< < "array not contain values which consist" < < " only from no-odd numbers\n"; else { cout< < "sum of values which consist" < < " only from no-odd numbers is " < < sum< < endl; //разбиваем значение суммы на разряды arr = splitvalue(sum, n, true); for(cnt = (i = 0); i < n; i++) { if(! isvalueconsistonlynooddnumbers(arr[i])) cnt = cnt + 1; } cout< < "given sum contains from "< < cnt< < " odditive numbers\n"; delete [] arr; } system("pause"); } return 0; } int getrandval(int n) { int val = 0; int ndigits = 0; //будем продолжать генерацию //пока не сгенерируем случ //n-значное число while(ndigits ! = n) splitvalue((val = rand()%rand_max), ndigits, false); return val; } int * splitvalue(int val, int & n, bool bgetarray) { int * arr = null; //указатель на массив с числа val if(val < 0) val *= -1; //знак числа нам не нужен //подсчитываем число разрядов в числе int i, buf = val; for(n = 0; 0 < buf; n++) buf = buf / 10; //выделяем память под массив чисел if(bgetarray) { arr = new int[n]; for(i = 0; 0 < val; i++) { //записываем в массив цифры разрядов числа arr[i] = val % 10; val = val / 10; } } return arr; } bool isvalueconsistonlynooddnumbers(int val) { bool bret = true; int ndigits = 0; int * array = splitvalue(val,ndigits,true); for(int i = 0; i < ndigits & & bret; i++) { if(array[i]%2 == 0) bret = false; } delete [] array; return bret; }
Реши свою проблему, спроси otvet5GPT
-
Быстро
Мгновенный ответ на твой вопрос -
Точно
Бот обладает знаниями во всех сферах -
Бесплатно
Задай вопрос и получи ответ бесплатно
Популярно: Информатика
-
норрд13.05.2020 05:04
-
romakim02kum25.07.2022 12:57
-
Саня158520.09.2021 20:02
-
dashkastroga21.12.2022 09:31
-
Glupaya99017.12.2021 05:01
-
korzhukova02124.04.2020 15:26
-
alek0903.09.2022 18:57
-
ника276113.03.2021 21:42
-
annaglukhikh0728.10.2022 21:45
-
Ярослав346413.10.2021 03:38
Есть вопросы?
-
Как otvet5GPT работает?
otvet5GPT использует большую языковую модель вместе с базой данных GPT для обеспечения высококачественных образовательных результатов. otvet5GPT действует как доступный академический ресурс вне класса. -
Сколько это стоит?
Проект находиться на стадии тестирования и все услуги бесплатны. -
Могу ли я использовать otvet5GPT в школе?
Конечно! Нейросеть может помочь вам делать конспекты лекций, придумывать идеи в классе и многое другое! -
В чем отличия от ChatGPT?
otvet5GPT черпает академические источники из собственной базы данных и предназначен специально для студентов. otvet5GPT также адаптируется к вашему стилю письма, предоставляя ряд образовательных инструментов, предназначенных для улучшения обучения.