|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - [решено] Помогите решить задачу по С++ |
|
C/C++ - [решено] Помогите решить задачу по С++
|
Новый участник Сообщения: 12
|
Профиль | Отправить PM | Цитировать |
Отправлено: 11:38, 22-10-2010 | #111 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 3320
|
Профиль | Отправить PM | Цитировать terminalek можно выделить два буфера на три символа и сверять их по тексту, если совпали в новую строчку отправить 2 и один из буферов, потом всё заново с прирашеним 2йки если ещё есть повторы. Или же сразу на месте до конца фразы проверить сколько раз встретился буфер.
Цитата terminalek:
continue перейти к следующему "приращению" цикла while, то есть к следующему символу (если предыдущее условие ^^ выполнилось) присваиваем sp 1 для того что б перейти следующий раз сразу к второму символу (значит один пробел уже напечатался, а второй и последующий подряд будет отловлен). Если это не пробел был в самом начале зануляем sp сразу. Если не было перехода по continue печатаем символ (любой, пробел единичный так же). |
|
Отправлено: 18:09, 22-10-2010 | #112 |
Новый участник Сообщения: 2
|
Профиль | Отправить 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 |
Будем жить, Маэстро... Сообщения: 6694
|
Профиль | Сайт | Отправить PM | Цитировать theBest4ainik, Язык конференции русский, если у вас нет возможности набирать русский текст, воспользуйтесь виртуальной клавиатурой, находится справа от поля ввода.
![]() |
------- Отправлено: 20:04, 24-10-2010 | #114 |
Новый участник Сообщения: 15
|
Профиль | Отправить 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 Цитата:
|
|
Отправлено: 23:15, 24-10-2010 | #115 |
Будем жить, Маэстро... Сообщения: 6694
|
Профиль | Сайт | Отправить PM | Цитировать Это лучше заменить
на iMin = iMax = m[0]; // первый элемент массива, потому что ноль это значение, и если значения будут от -n до -1 то условие никогда не будет верным.[ очень надо! »[/q]Что не получается в задаче? В чём нужна доработка? |
------- Отправлено: 00:18, 25-10-2010 | #116 |
Новый участник Сообщения: 15
|
Профиль | Отправить PM | Цитировать Цитата ValeraRU:
и вторую задачу вообще понятия не имею,дело в том что препод такой попался,т.е. если без знаний к нему пришел,то можешь спать,а я выучить С++ хочу и вот на лабах,мне не хватает знаний ![]() |
|
Отправлено: 01:37, 25-10-2010 | #117 |
Будем жить, Маэстро... Сообщения: 6694
|
Профиль | Сайт | Отправить PM | Цитировать Попробовал решить часть вычисления произведения от минимального до максимального, отдельной задачей
Цитата ValeraRU:
#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; } |
|
------- Отправлено: 14:17, 25-10-2010 | #118 |
Новый участник Сообщения: 12
|
Профиль | Отправить PM | Цитировать Народ помогите пожалуйста завтра сдавать программу, а ее нужно преобразовать из консольной в визуальную, т.е. чтобы программа работала с кнопок
вот код программы |
Последний раз редактировалось Klim1988, 26-10-2010 в 08:13. Отправлено: 07:47, 26-10-2010 | #119 |
Новый участник Сообщения: 12
|
Профиль | Отправить PM | Цитировать Решил я свою задачу вот ссылка на нее http://forum.oszone.net/thread-189320.html
|
Последний раз редактировалось Klim1988, 26-10-2010 в 13:58. Отправлено: 13:26, 26-10-2010 | #120 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
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 |
|