2 Asp1r1n все перестановки элементов массива у которых элементы могут совпадать не является тривиальной задачей например 11111 существуеет одна единственная перестановка а не 5! 8)) ... если необходимо найти общее количество перестановок то математически находится G=N! Total=G-F где F - это всевозможные перестановки одинаковых!
Посмотрите плз код вот что я написал для своей лабы!!!! 18. Написать программу, которая находит в каждой строке матрицы F размерности m n максимальный и минимальный элементы и помещает их на место первого и последнего элемента строки соответственно. Code: #include<iostream> #include<alloc.h> #include<conio.h> using namespace std; int main() { int i,j,x; cout<<endl<<"m="; int m; cin>>m; cout<<endl<<"n="; int n; cin>>n; if(m<1||n<1) return -1; double**a=new double*[m]; for(i=0;i<m;i++) { a[i]=new double[n]; for(int j=0;j<n;j++) { cout<<"a["<<i<<"]["<<j<<"]="; cin>>a[i][j]; } } int k; int*b=new int[m]; int min,l; i=0;x=0; while(i<m) { int min=a[i][0],max=a[i][0],l; for(int j=1;j<n;++j) { if (a[i][j]<min) min=a[i][j]; if (a[i][j]>max) max=a[i][j]; } l=(2*m-i); b[l]=max; b[i]=min; ++i; } int p; for (p=0;p<m;p++){ cout<<"b["<<p<<"]="<<b[p];} getch (); return 0; }
2HencH_MaN Уважай тех к кому обращаешься за помощью. Код, который ты привел, просто нечетабелен. Мне реально влом напрягаться, вчитываясь в эту кашу. Раставь нормально отступы, сгруппируй определения и тд. Тебе же самому будет приятно смотреть, на красиво структурированный код. Да и в чём собственно вопрос?
Вопрос в том что упорядочивание не производиться PHP: #include<iostream> #include<alloc.h> #include<conio.h> using namespace std; int main() { int i,j,x; cout<<endl<<"m="; int m; cin>>m; cout<<endl<<"n="; int n; cin>>n; if(m<1||n<1) return -1; double**a=new double*[m]; for(i=0;i<m;i++) { a[i]=new double[n]; for(int j=0;j<n;j++) { cout<<"a["<<i<<"]["<<j<<"]="; cin>>a[i][j]; } } int k; int*b=new int[m]; int min,l; i=0;x=0; while(i<m) { int min=a[i][0],max=a[i][0],l; for(int j=1;j<n;++j) { if (a[i][j]<min) min=a[i][j]; if (a[i][j]>max) max=a[i][j]; } l=(2*m-i); b[l]=max; b[i]=min; ++i; } int p; for (p=0;p<m;p++){ cout<<"b["<<p<<"]="<<b[p];} getch (); return 0; }
Если кому-нибудь когда-нибудь понадобится построение ПОЛИЗ(польской инверсной записи - парсинг выражений). То вот вам моя его реализация на c#: Code: public void Parse(string text) { Stack<char> stack = new Stack<char>(); //рабочкий стек string ret = ""; //собственно сам полиз for (int i = 0; i < text.Length; i++) { if (text[i] == '(') stack.Push('('); if (char.IsLetter(text[i]) || char.IsDigit(text[i])) ret += text[i]; if (text[i] == '-'||text[i]=='*'||text[i]=='/'||text[i]=='+') { while (stack.Count!=0 && stack.Peek() != '(') // выталкиваем все с большим приоритетом { char a = stack.Pop(); //вынимаем... if (GetOperationPriory(text[i]) < GetOperationPriory(a)) ret += a; } stack.Push(text[i]); } if (text[i] == ')') { while(stack.Count!=0&&stack.Peek()!=')') { char k = stack.Pop(); if (k != ')'&&k!='(') ret += k; } } } if (stack.Count != 0) { while (stack.Count != 0) { if (stack.Peek() != '(') ret += stack.Pop(); else stack.Pop(); } } label2.Text = ret; } private int GetOperationPriory(char sym) //приоритет операций { if (sym == '+') return 1; if (sym == '-') return 2; if (sym == '*') return 3; if (sym == '/') return 4; else return 0; }
2 HencH_MaN, прогу не компилил, но вроде это выводит одну строку из массива, попробуй добавить еще один цикл.
2HencH_MaN Башка не рабатает, так что вот тебе немножечко моего говнокода; На что стоит обратить внимания: 1. Нет никакой обработки случаев когда malloc возвращает нулевые указатели вместо валидных. Это фигово, но мне влом. 2. В задании нет указания на то, что надо обменивать элементы - первый с минимальным, последний с максимальным. Так что я сделал затирание максимальным и минимальным значением последнего и первого элемента строки. 3. Костыли в виде инициализации iMax, iMin максимально и минимально возможными значениями для int сделаны по причине нулевой мотивации облагораживать код и вводить дополнительные if. Так, что если хочешь сделать не машиннозависимый код, то вперёд ^____^ Code: #include <stdio.h> #include <stdlib.h> int main(void) { int iRowsSize, iColsSize, iMin, iMax; int i, j; int **pCol; int *pRow; iRowsSize = iColsSize = 0; iMax = 0x80000000; iMin = 0x7FFFFFFF; printf("Input number of rows : "); scanf("%d", &iRowsSize); printf("Input number of columns :"); scanf("%d", &iColsSize); pCol = (int **)malloc(iColsSize * sizeof(int **)); for(i = 0; i < iColsSize; i++) { pRow = (int *)malloc(iRowsSize * sizeof(int)); pCol[i] = pRow; for(j = 0; j < iRowsSize; j++) { printf("Input [%d][%d] element : ", i, j); scanf("%d", &pCol[i][j]); } } for(i = 0; i < iColsSize; i++) { for(j = 0; j < iRowsSize; j++) { iMax = (pCol[i][j] > iMax) ? pCol[i][j] : iMax; iMin = (pCol[i][j] < iMin) ? pCol[i][j] : iMin; } pCol[i][0] = iMin; pCol[i][iRowsSize - 1] = iMax; iMax = 0x80000000; iMin = 0x7FFFFFFF; } for(i = 0; i < iColsSize; i++) { for(j = 0; j < iRowsSize; j++) { printf("[%d][%d] element : %d ", i, j, pCol[i][j]); } free(pCol[i]); printf("\n"); } free(pCol); return 0; }
Люди помогитее плиииз с http://forum.antichat.ru/showpost.php?p=969281&postcount=823 надо на с++ время в обрез((( осталось
Stern вот тебе первое задание с комментариями а как делать остальные это уже твоя забота PHP: #include <vector> #include <iostream> #include <algorithm> #include <cstdio> #define SIZE 10 using namespace std; double get_ave(const vector <int> & a) // функция считающее среднее значение числа { int sum = 0; for (int i = 0; i < a.size(); i++) { sum += a[i]; } return sum / (a.size() + .0); // делим сумму всех чисел на размер массива } void ShowArray(const vector <int> & a) // функция для вывода массива на экран { cout << "Array: "; for (int i = 0; i < a.size(); i++) { cout << "a[i]:" << a[i] << "\n"; } } int main() { cout << "Fill random (y/n)?\n"; char ch; cin >> ch; vector <int> a(SIZE); if (ch == 'y') { srand(32000); for (int i = 0; i < SIZE; i++) { //srand(100); a[i] = rand() % 100; } } else if(ch == 'n') { for (int i = 0; i < SIZE; i++) { cin >> a[i]; } } ShowArray(a); int N; cout << "Enter number!\n"; cin >> N; if((N < SIZE) && (N >= 0)) { a[N] = get_ave(a); } ShowArray(a); cin.get(); sort(a.begin(), a.end()); ShowArray(a); // выводим отсортированный массив cin.get(); return 0; }
Народ,подскажите по такой трабле: Составить блок схему котрая выводит на экран сумму двух чисел,равную числу от 1 до 9 введеному с клавиатуры например 6=5+1, 9=4+5... и так от 1 до 9 З.Ы. заранее благодарен
Как я понял нужно приложение работающее в консоли,которое при вводе числа от 1 до 9ти выводит сумму этого числа в 2х цифрах т.е. при вводе 6 будет выводится числа 5+1 либо 2+4 и так далее... З.Ы. Точнее сказать немогу т.к. меня попросили помоч и я в с++ нешарю
Задание: Заполнить матрицу размерностью n на m (nxm) числами, которые деляться без остатка на число S. Строку с индексом K разделить на число S. -- Заранее спасибо.
НУ ПОЖАЛУЙСТА......HELP!!!! задачка... точнее три... для вас это пару пустяков... на паскале: 1-определить делится ли число N на n нацело 2-вводим с клавиатуры дробное N и вычисляем среднее арифметическое 3-найти сумму вводимых с клавиатуры чисел конец ввода число 0