Опубликовано 03.01.2018 по предмету Информатика от Гость

определить сумму чисел ,не превосходящих заданного числа n ,содержащих только нечетные цифры ,СРОООЧНО ПОМОГИТЕ ПОЖААЛУЙСТАА!!

Ответ оставил Гость

#include #include //Нужно для генерации 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))<"Values in array with only odd numbers/n";        for(sum = (cnt = (i = 0)); i < m; i++)        {            if(isValueConsistOnlyNoOddNumbers(arr[i]))            {                cout<" only from no-odd numbers/n";        else        {            cout<<"sum of values which consist"                <<" only from no-odd numbers is "                <" 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;}

Не нашел нужный ответ?

Если ответ по предмету Информатика отсутствует или он оказался неправильным, то попробуй воспользоваться поиском других ответов во всей базе сайта.


Найти другие ответы
Самые новые вопросы