Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - [решено] Помогите решить задачу по С++

Закрытая тема
Настройки темы
C/C++ - [решено] Помогите решить задачу по С++

Новый участник


Сообщения: 15
Благодарности: 0

Профиль | Отправить PM | Цитировать


Изменения
Автор: Vadikan
Дата: 20-12-2011
Описание: правила
  1. По заданному натуральному(целому) числу, определить количество цифр и найти их сумму.
  2. По заданному натуральному(целому) числу, определить количество цифр и найти их сумму. Из указаного диапазона n и m
  3. Выполнить инвертирование трех одномерных массивов: А[20], В[10], С[15]. Написать функции: -Заполнение массива числами в диалоговом режиме. -Вывода одномерного массива -Инвертирование одномерного массива.
  4. Определитьдля каждого из трех одномерных массивов : A[45], B[10], C[20] сколько раз в них встретились два подряд идущих нулевых элемента. Написать функции: -Заполнение массива числами в диалоговом режиме. -Вывода одномерного массива. -Определения количества двух подряд идущих нулевых элементов в одномерном массиве.


Выдержка из правил форума
Цитата:
Вопросы, в которых нет кода и следов ваших размышлений над поставленной задачей также будут перенесены в закрытую тему - Уголок Ленивого Программиста

Исходное сообщение автора

Задание: Написать прогу, которая по заданному натуральному числу определяет количество цифр в нем и их сумму.Протестируйте функцию десятичных чисел из некоторого диапазона от n до m.

Отправлено: 14:54, 27-09-2008

 

Новый участник


Сообщения: 12
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата lxa85:
Кстати говоря приведенный алгоритм не рабочий »
а этот :


читать дальше »
PHP код: Выделить весь код

#include "stdafx.h"

#include <string.h>
#include <conio.h>
#include <iostream>
#include<iterator>
#include <stdio.h>


char UpSymbol(char c){
    
int i=(int)c;

    if ((
i>96)&&(i<122)){
        
i=i-32;
    };
    if ((
i>-97)&&(i<-80)){
        
i=i-32;
    };
    if ((
i>-33)&&(i<-16)){
        
i=i-80;
    };
    if (
i==-15){
        
i=-16;
    };
    return (
char)i;
}

int main(void
{
using namespace std;
char s[255];
int i;

cout<<"Enter Text: ";
cin.getline(s,255);

s[0]=UpSymbol(s[0]);

for(
i=0;i<strlen(s);i++){
    
    if (
s[i]==' '){
        
s[i+1]=UpSymbol(s[i+1]);
    }
}
cout << "Resultat: " <<  s  <<  endl;

getch();



Отправлено: 11:38, 22-10-2010 | #111



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

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


Ветеран


Сообщения: 3320
Благодарности: 916

Профиль | Отправить PM | Цитировать


terminalek можно выделить два буфера на три символа и сверять их по тексту, если совпали в новую строчку отправить 2 и один из буферов, потом всё заново с прирашеним 2йки если ещё есть повторы. Или же сразу на месте до конца фразы проверить сколько раз встретился буфер.

Цитата terminalek:
Код: Выделить весь код
   int sp = 0, c; 

   while( (c = getchar()) != EOF) { 
      if(isspace(c)) { 
         if(sp)  // что означает данное условие? если  isspace возвращает 0? 
         continue; // суть continue тоже не совсем понял, объясните пжлст. 
         else sp = 1; // что дает sp = 1? 
      } 
     else 
     sp = 0; 
     putchar(c); 
    }
>>
if(sp) - означает "если sp не ноль" Условия выше так же, если isspace вернул не ноль
continue перейти к следующему "приращению" цикла while, то есть к следующему символу (если предыдущее условие ^^ выполнилось)
присваиваем sp 1 для того что б перейти следующий раз сразу к второму символу (значит один пробел уже напечатался, а второй и последующий подряд будет отловлен).
Если это не пробел был в самом начале зануляем sp сразу.
Если не было перехода по continue печатаем символ (любой, пробел единичный так же).
Это сообщение посчитали полезным следующие участники:

Отправлено: 18:09, 22-10-2010 | #112


Новый участник


Сообщения: 2
Благодарности: 0

Профиль | Отправить PM | Цитировать


pomogite rewit zada4u.

vvodits9 kakoe to 4islo, naprimer 3. teper vvodits9 ego soderjimoe: 1 4 6

nado vivesti v posledovatelnosti : 6 4 1


no est glavnoe uslovie: nelz9 ispolzovat massiv i povtoreni9 kak while i for, daje dl9 vvoda; nujno ispolzovat RECURSIU.

Код: Выделить весь код
#include <iostream>
using namespace std;

unsigned long rec (unsigned long);

int main(){
	int n;
	cin >> n;

	cout << rec (n);
	
	
	return 0;
}
unsigned long  rec (unsigned long n){
	int x;
	cin >> x;
	if (n==1)
			return x ;
	else
		return rec(n-1);


}

vot tak 9 napisal kod, no ne mogu naiti owibku, plz daite ideu, gde mo9 owibka

Последний раз редактировалось Drongo, 17-12-2011 в 13:18.


Отправлено: 14:19, 24-10-2010 | #113


Аватара для Drongo

Будем жить, Маэстро...


Сообщения: 6694
Благодарности: 1393

Профиль | Сайт | Отправить PM | Цитировать


theBest4ainik, Язык конференции русский, если у вас нет возможности набирать русский текст, воспользуйтесь виртуальной клавиатурой, находится справа от поля ввода.

-------
Правильная постановка вопроса свидетельствует о некотором знакомстве с делом.
3нание бывает двух видов. Мы сами знаем предмет — или же знаем, где найти о нём сведения.
[Quick Killer 3.0 Final [OSZone.net]] | [Quick Killer 3.0 Final [SafeZone.cc]] | [Парсер логов Gmer] | [Парсер логов AVZ]

http://tools.oszone.net/Drongo/Userbar/SafeZone_cc.gif


Отправлено: 20:04, 24-10-2010 | #114


Новый участник


Сообщения: 15
Благодарности: 0

Профиль | Отправить PM | Цитировать


Здравствуйте,нужна помощь,в общем на лаб. по программированию сейчас идут задачи с массивом,в связи с нехваткой знаний обращаюсь к вам за помощью) помогите чем сможете
вот задача(пример)
Код: Выделить весь код
/*
Подключние рабочих библиотек:
    <stdio.h> - библиотека ввода/вывода
*/
#include <stdio.h>

int main(int argc, char* argv[])
{
    /* Именованная константа, определяющая количество элементов массива */
    const    MAX_ELEMENTS = 8;

    /* Объявление и инициализация переменных */
    float    m[MAX_ELEMENTS];
    float    sum = 0;
    float    result = 1;
    int      iMax, iMin;

    /* Запрашиваем ввод данных с клавиатуры */
    for (int i = 0; i < MAX_ELEMENTS; i++)
    {
        printf("m[%d] = ", i);
        scanf("%f", &m[i]);
    }

/* Принимаем индексы максимального и минимального массива равными 0 */
    iMin = iMax = 0;
    for (i = 0; i < MAX_ELEMENTS; i++)
    {
        /* Вычисляем сумму отрицательных элементов массива */
        if (m[i] < 0) sum += m[i];

        /* Находим индексы максимального и минимального элементов массива */
        if (m[i] > m[iMax]) iMax = i;
        if (m[i] < m[iMin]) iMin = i;
    }

    /* Находим произведение элементов массива, находящихся между минимальным и максимальными элементами */
    for (i = ((iMax < iMin) ? iMax : iMin);
        i <= ((iMax > iMin) ? iMax : iMin);
        result *= m[i++]);

    /* Выводим на экран результат вычислений */
    printf("\nСумма отрицательных элементов = %.2f\n", sum);
    printf("Результат = %.2f\n\n", result);

    /* Сортировка элементов массива по возрастанию */
    for (i = 0; i < MAX_ELEMENTS; i++)
    {
        for (int j = i + 1; j < MAX_ELEMENTS; j++)
        {
            if (m[i] > m[j])
            {
                result = m[i];
                m[i] = m[j];
                m[j] = result;
            }
        }
    }

    /* Вывод на экран отсортированного по возрастанию массива */
    printf("Отсортированный массив:\n");
    for (i = 0; i < MAX_ELEMENTS; printf("%.2f ", m[i++]));

    return 0;
}

Результат выполнения программы:
m[0] = 3
m[1] = 7
m[2] = -4
m[3] = 8
m[4] = -1
m[5] = 9
m[6] = 0
m[7] = 7

Сумма отрицательных элементов = -5.00
Результат = 288.00

Отсортированный массив:
-4.00 -1.00 0.00 3.00 7.00 7.00 8.00 9.00
вот условие(моей задачи)
Код: Выделить весь код
В одномерном массиве, состоящем из п вещественных элементов, вычислить:
1)	сумму положительных элементов массива;
2)	произведение элементов массива, расположенных между максимальным по модулю и минимальным по модулю элементами.
Упорядочить элементы массива по убыванию.
и вот что я написал
Код: Выделить весь код
#include <stdio.h>
#include <math.h>
int main(int argc, char* argv[])
{
    const    MAX_ELEMENTS = 80;
    float    m[MAX_ELEMENTS];
    float    sum = 0;
    float    result = 1;
    int      iMax, iMin,n;
      FILE *in=fopen("1.txt","r");
    fscanf(in,"%d", &n);
    for (int i = 0; i < n; i++)
    {
      //	printf("m[%d] = ", i);
	fscanf(in,"%f", &m[i]);
    }
    iMin = iMax = 0;
    for (i = 0; i < MAX_ELEMENTS; i++)
    {
	if (m[i] > 0) sum += m[i];
	if (m[i] > m[iMax]) iMax = i;
	if (m[i] < m[iMin]) iMin = i;
    }
    for ( i = ((iMax < iMin) ? iMax : iMin);
	i <= ((iMax > iMin) ? iMax : iMin);
	result *= m[i++]);
    printf("\n summa polojitelinih 4isel  = %.2f\n", sum);
    printf("rezultat = %.2f\n\n", result);
    for (i = 0; i > MAX_ELEMENTS; i--)
    {
	for (int j = i - 1; j < MAX_ELEMENTS; j--)
	{
	    if (m[i] < m[j])
	    {
		result = m[i];
		m[i] = m[j];
		m[j] = result;
	    }
	}
    }
    printf("otsortirovanii massiv:\n");
   for (i = 0; i < MAX_ELEMENTS; printf("%.2f ", m[i++]));
    return 0;
}
помогите доработать =(
очень надо!

и вот вторая задача
пример:

Код: Выделить весь код
ДВУМЕРНЫЕ МАССИВЫ

Пример задания:	Для заданной матрицы размером 8 на 8 найти такие k, что k-я строка матрицы совпадает с k-м столбцом. Найти сумму элементов в тех строках, которые содержат хотя бы один отрицательный элемент.

Пример решения задачи:

#include <stdio.h>

int main(int argc, char* argv[])
{
    /* Объявляем и инициализируем матрицу 8х8 */
    int     matrix[8][8] = {
                           { 2, 7, 2, 7, 1, 4, 0, 3 },
                           { 1, 0, 7, 6, 0, -8, 3, 5 },
                           { 2, 7, 1, 8, 1, 4, 9, 3 },
                           { 9, 2, 8, 5, 2, 0, 0, 6 },
                           { 7, 1, 1, 3, 9, 3, 9, 1 },
                           { 8, 2, 4, 9, 1, -6, 4, 9 },
                           { 0, 3, 9, 0, 9, 4, 8, 8 },
                           { 1, 8, 3, 2, 8, 2, 8, 0 }
                           };
    int     i, j, iSumm; /* Счетчик и переменная для хранения суммы */
    bool    bFlag;          /* Флаг */

    /*----------------------------------------------*/
    /*    П Е Р В А Я   Ч А С Т Ь   З А Д А Н И Я   */
    /*----------------------------------------------*/
    printf("k = ");
    for (i = 0; i < 8; i++)
    {
        /* Присваиваем Флагу исходное значение */
        bFlag = true;
        for (j = 0; j < 8; j++)
        {
            /* Сравниваем элемент i-й строки j-го столбца с элементом j-й строки i-го столбца. В случае их несоответствия присваиваем Флагу значение Ложь и прерываем цикл по j конструкцией break */
            if (matrix[i][j] != matrix[j][i])
            {
                bFlag = false;
                break;
            }
        }
        /* В случае сохранения флагом исходного значения выводим на экран номер соответствующей строки */
        if (bFlag) printf("%d ", i);
    }

    /*----------------------------------------------*/
    /*    В Т О Р А Я   Ч А С Т Ь   З А Д А Н И Я   */
    /*----------------------------------------------*/
    printf("\n\n");
    for (i = 0; i < 8; i++)
    {
        /* Присваиваем переменным исходные значения */
        bFlag = false;
        iSumm = 0;
        for (j = 0; j < 8; j++)
        {
            /* При нахождение хотя бы одного отрицательного элемента присваиваем Флагу значение Истина, обозначающее необходимость вывода Суммы на экран */
            if (matrix[i][j] < 0) bFlag = true;

          /* Суммируем значения элементов i-й строки */
            iSumm += matrix[i][j];
        }
        /* В случае нахождения в строке хотя бы одного отрицательного элемента выводим на экран сумму элементов i-й строки */
        if (bFlag) printf("Сумма элементов строки #%d = %d\n", i, iSumm);
    }

    return 0;
}

Результат выполнения программы:
k = 2 6

Сумма элементов строки #1 = 14
Сумма элементов строки #5 = 31
что надо сделать мне :
Цитата:
Осуществить циклический сдвиг элементов квадратной матрицы размерности МхN вправо на k элементов таким образом: элементы 1-й строки сдвигаются в последний столбец сверху вниз, из него - в последнюю строку справа налево, из нее - в первый столбец снизу вверх, из него - в первую строку; для остальных элементов - аналогично.
ребята очень нужно,заранее благодарю

Отправлено: 23:15, 24-10-2010 | #115


Аватара для Drongo

Будем жить, Маэстро...


Сообщения: 6694
Благодарности: 1393

Профиль | Сайт | Отправить PM | Цитировать


Это лучше заменить
Код: Выделить весь код
iMin = iMax = 0;
на
Код: Выделить весь код
iMin = iMax = m[0]; // первый элемент массива, потому что ноль это значение, и если значения будут от -n до -1 то условие никогда не будет верным.[
q=ValeraRU]помогите доработать =(
очень надо! »[/q]Что не получается в задаче? В чём нужна доработка?

-------
Правильная постановка вопроса свидетельствует о некотором знакомстве с делом.
3нание бывает двух видов. Мы сами знаем предмет — или же знаем, где найти о нём сведения.
[Quick Killer 3.0 Final [OSZone.net]] | [Quick Killer 3.0 Final [SafeZone.cc]] | [Парсер логов Gmer] | [Парсер логов AVZ]

http://tools.oszone.net/Drongo/Userbar/SafeZone_cc.gif


Отправлено: 00:18, 25-10-2010 | #116


Новый участник


Сообщения: 15
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата ValeraRU:
2) произведение элементов массива, расположенных между максимальным по модулю и минимальным по модулю элементами. Упорядочить элементы массива по убыванию. »
вот это я не знаю как написать правильно..

и вторую задачу вообще понятия не имею,дело в том что препод такой попался,т.е. если без знаний к нему пришел,то можешь спать,а я выучить С++ хочу и вот на лабах,мне не хватает знаний

Отправлено: 01:37, 25-10-2010 | #117


Аватара для Drongo

Будем жить, Маэстро...


Сообщения: 6694
Благодарности: 1393

Профиль | Сайт | Отправить PM | Цитировать


Попробовал решить часть вычисления произведения от минимального до максимального, отдельной задачей
Цитата ValeraRU:
Код: Выделить весь код
...
/* Находим индексы максимального и минимального элементов массива */
 if (m[i] > m[iMax]) iMax = i;
 if (m[i] < m[iMin]) iMin = i;
 }
/* Находим произведение элементов массива, находящихся между минимальным и максимальными элементами */
 for (i = ((iMax < iMin) ? iMax : iMin);
 i <= ((iMax > iMin) ? iMax : iMin);
 result *= m[i++]);
....
»
Код: Выделить весь код
#include <iostream>
using namespace std;

int main() {
   const int size = 8; // Наш размер массива. Можно изменить произвольно размер
   double z, min, max, array[size] = {0};
   int iMin, iMax, Result = 1;

   // Ввод значений в массив
   for(int i = 0; i < size; i++){
      cout << "Array[" << i << "] = ";
      cin >> array[i];
     }

   max = min = array[0]; // Присваиваем первый элемент

   // Поиск максимального и минимального значений
   for(int i = 1; i < size; i++){ // Начинаем с 1-го элемента, т.к. array[0] мы уже присвоили
      if(array[i] < min){
         min = array[i];
         iMin = i;  // Запоминаем индекс массива в котором хранится минимальное значение
        }
      if(array[i] > max){
         max = array[i];
         iMax = i; // Запоминаем индекс массива в котором хранится максимальное значение
        }
     }

   cout << "\nMinimal = " << min << endl;
   cout << "Maximal = " << max << endl;
   cout << endl;

   // Вычисляем произведение диапазона от индекса минимального значения, до индекса максимального значения
   if(iMin < iMax)
     for(int i = iMin; i < iMax; i++)
       Result *= array[i];
   else if(iMin > iMax)
     for(int i = iMax; i < iMin; i++)
       Result *= array[i];

   cout << "Proisvedenie Min - Max = " << Result << endl; // Выводим результат


   cin >> z;
   return 0;
}

-------
Правильная постановка вопроса свидетельствует о некотором знакомстве с делом.
3нание бывает двух видов. Мы сами знаем предмет — или же знаем, где найти о нём сведения.
[Quick Killer 3.0 Final [OSZone.net]] | [Quick Killer 3.0 Final [SafeZone.cc]] | [Парсер логов Gmer] | [Парсер логов AVZ]

http://tools.oszone.net/Drongo/Userbar/SafeZone_cc.gif


Отправлено: 14:17, 25-10-2010 | #118


Новый участник


Сообщения: 12
Благодарности: 0

Профиль | Отправить PM | Цитировать


Народ помогите пожалуйста завтра сдавать программу, а ее нужно преобразовать из консольной в визуальную, т.е. чтобы программа работала с кнопок

вот код программы

читать дальше »
PHP код: Выделить весь код

#include "stdafx.h"

#include <string.h>
#include <conio.h>
#include <iostream>
#include<iterator>
#include <stdio.h>


char UpSymbol(char c){
    
int i=(int)c;

    if ((
i>96)&&(i<122)){
        
i=i-32;
    };
    if ((
i>-97)&&(i<-80)){
        
i=i-32;
    };
    if ((
i>-33)&&(i<-16)){
        
i=i-80;
    };
    if (
i==-15){
        
i=-16;
    };
    return (
char)i;
}

int main(void
{
using namespace std;
char s[255];
int i;

cout<<"Enter Text: ";
cin.getline(s,255);

s[0]=UpSymbol(s[0]);

for(
i=0;i<strlen(s);i++){
    
    if (
s[i]==' '){
        
s[i+1]=UpSymbol(s[i+1]);
    }
}
cout << "Resultat: " <<  s  <<  endl;

getch();



Последний раз редактировалось Klim1988, 26-10-2010 в 08:13.


Отправлено: 07:47, 26-10-2010 | #119


Новый участник


Сообщения: 12
Благодарности: 0

Профиль | Отправить PM | Цитировать


Решил я свою задачу вот ссылка на нее http://forum.oszone.net/thread-189320.html

Последний раз редактировалось Klim1988, 26-10-2010 в 13:58.


Отправлено: 13:26, 26-10-2010 | #120



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - [решено] Помогите решить задачу по С++

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
C/C++ - Помогите решить задачу Urann Программирование и базы данных 11 14-05-2013 11:44
Разное - Помогите решить задачу в Excel Dgonny Программирование и базы данных 2 16-11-2009 04:11
C/C++ - Помогите решить задачу zdughi Программирование и базы данных 1 01-05-2009 06:03
помогите решить задачу snikers Программирование и базы данных 2 27-08-2004 01:57
помогите решить задачу Guest Программирование и базы данных 2 21-05-2004 11:23




 
Переход