Держи. Code: #include <stdio.h> #include <string.h> #define MAX_SIZE 0xff char *ReverseStr (char *s) { int i = 0, j, len; char s2 [MAX_SIZE]; len = strlen (s); j = len - 1; bzero (s2, len + 1); while (j >= 0) { s2 [i++] = s [j--]; } return s2; } int main () { char s [MAX_SIZE], *s1, *s2, *s3; //strcpy (s, "dfgh fdgn zhopaapohz dfgn ghjk ghn fghmjnfc oooppppppooo dfgbs 777999999777"); printf ("Vvedite stroky:\n"); if (fgets (s, MAX_SIZE, stdin) == NULL) { printf ("Error\n"); return -1; } s [strlen (s) - 1] = '\0'; s1 = s2 = s; while ((s1 = strchr (s1, 0x20)) != NULL) { s1++; s2 [s1 - s2 - 1] = '\0'; s3 = ReverseStr (s2); printf ("%s", s2); if (strstr (s2, s3) == NULL) printf (" - NO\n"); else printf (" - Palyndrom :)\n"); s2 = s1; } return 0; }
"bzero (s2, len + 1);" у меня пишет "Function should have a prototype" связкой CTRL+F1 не выдает библиотеку , показывает ево как не-зарезервированое слово !!! Есть замена етой функцыи ? .... и что она вообще делает ??? В остальном пока все понятно !
А-а, ну у тебя же не линукс, сорри. Замени на Code: memset (s2, '\0', len + 1); Хотя можно и по-другому Code: s2 [len + 1] = '\0';
Слушай прога работает почти как надо одно НО , нужно штобы пробулы упускались полностю , тоесть в начале текста можно задать пробел или несколько так и на протяжении всево текста , так вот пробелы нужно упустить .... Как ето замутить ???
Парни, need help. Только что уведомили, что на завтро надо прогу на Pascal (либо C++), кодирование тремя методами - 1. статический ХАФФМАНА 2. Фано-Шеннона 3. динамический ХАФФМАНА Выручайте, оч. прошу.
С# Народ кто сможет помогите, очень нужно сделать два задания по С#, пожалуйста если кто может сделайте. 1.Даны два массива, упорядоченных по возростанию: А[n] и B[m]. Сформируйте массив C[n+m], состоящий из элементов массивов А и В, упорядоченный по возростанию. 2.И решить задачу с помощью рекурсии... Легенда гласит, что где-то в Ханое находится храм, в котором размещена следующая конструкция: на основании укреплены 3 алмазных стержня, на которые при сотворении мира Брахма нанизал 64 золотых диска с отверстием посередине, причем внизу оказался самый большой диск, на нем – чуть меньший и так далее, пока на верхушке пирамиды не оказался самый маленький диск. Жрецы храма обязаны перекладывать диски по следующим правилам: 1. За один ход можно перенести только один диск. 2. Нельзя класть больший диск на меньший. Руководствуясь этими нехитрыми правилами, жрецы должны перенести исходную пирамиду с 1-го стержня на 3-й.
2 krypt3r : слушай подскажы как в выше описаном тобой коде о полендромном слове прыисходит выделение слова а то я немогу догнать даную конструкцыю ! И что означает даная конструкцыя "((s1 = strchr (s1, 0x20)) != NULL)" особенно 0x20 ато я с таким еще не сталкивалса , а препад напрягает )
Как понять фразу? Как в слове происходит выделение слова О.О? Или имелось в виду выделение слова из введенной строки? В коде юзаются два указателя, которые указывают (сорри за тавтологию=) на начало двух соседних слов, разделенных пробелом. Символы, находящиеся между этими указателями, принадлежат одной строке Функция strchr Другими словами, Code: while ((s1 = strchr (s1, 0x20)) != NULL) ищет в строке пробел. 0x20 - это шестнадцатиричный код пробела, если смущает, замени его на более понятный вариант Code: while ((s1 = strchr (s1, ' ')) != NULL) Если пробел не найден, то возвращает NULL и выходит из цикла, если пробел найден, то прогоняем цикл для выделения слова, его реверсинга и сравнения "обратного" слова с оригинальным. Последнее происходит с помощью функции strstr. Ну тут все просто. Читай ман
Решите пожалуйста задачу. Сроки жмут, а я все пары по информатике прогулял, думая что там меня ничему новому не научат, теперь каюсь. Решение необходимо на Турбо Паскале... Заранее спасибо. ------------ Дана матрица А: -4.1 5.8 -6.7 4.3 2.1 -5.1 6.3 -4.7 Найти Р=<сумма элементов 1 строки> - <произведение элементов 2й строки> b [1...n, 1...m] bij, b[i,j] --------------------
перемножение матриц с помощью указателей Нужно переделать так, чтобы в функции result вместо sum=sum+a[h]*b[h][j]; использовались указатели. C++ Code: #include<iostream> #include <conio.h> using namespace std; void fillarray(int * array[], int m, int n) { for(int i=0;i<m;i++) { for(int j=0;j<n;j++) { array[i][j]=rand() % 10; //fill with random value from 0 to 9 cout<<array[i][j]<<"\t"; //print to screen } cout<<"\n"; //"\n"=endl } cout<<endl; } void result(int * a[], int * b[], int m, int k, int n) { int sum; cout<<"Result "<<m<<"x"<<n<<" array:"<<endl<<endl; for(int i=0; i<m; i++) { for(int j=0; j<n; j++) { for(int h=0; h<k ;h++) { sum=sum+a[i][h]*b[h][j]; //matrix multiplication } cout<<sum<<"\t"; //print to screen sum=0; } cout<<endl; } } int main() { srand(time(NULL)); int m,n,k; cout<<"Put first array size: "<<endl<<"m: "; cin>>m; cout<<"n: "; cin>>k; cout<<"Put second array size: "<<endl<<"m: "<<k<<endl<<"n: "; cin>>n; cout<<endl; /* allocate memory */ int**p=new int *[m],**q=new int*[k]; for (int i=0;i<m;i++) p[i]=new int[k]; for (int i=0;i<k;i++) q[i]=new int[n]; fillarray(p,m,k); cout<<"*"<<endl<<endl; fillarray(q,k,n); cout<<"="<<endl<<endl; result(p,q,m,k,n); /* free memory */ for (int i=0;i<k;i++) delete p[i]; for (int i=0;i<n;i++) delete q[i]; delete[] p, q; cout<<endl<<"Press any key..."<<endl; getch(); return 0; } хэлп ми энибади... еще есть вторая прога, которая перемножает матрицы, рабочая, использует указатели, но этот вариант выложен на нашем студенческом форуме и с него уже скатали все кому не лень. Поэтому, нужно как-то склепать две программы в одну, используя указатели, и так, чтобы не было похоже на вторую прогу Code: #include <stdio.h> #include <conio.h> #include <stdlib.h> #include <time.h> int const N =3; int ** func(int **m, int **n) { int **v; int i, j, f, l, h, k; v = (int**)malloc(sizeof(int) * N); if(v == NULL) { printf("Not ehough memory!\n"); getch(); exit(1); } for(i=0; i<N; i++) { *(v+i) = (int*)malloc(sizeof(int)*N); if(*(v+i) == NULL) { printf("Not enough memory!\n"); getch(); exit(1); } } i = j = k = h =0; for (f=0; f<N; f++) { for(l=0; l<N; l++) { int sum=0, current; for(j=0,k=0; j<N,k<N; j++,k++) { current = *(*(m+i)+j) * *(*(n+k)+h); sum += current; } *(*(v+f)+l) = sum; h++, j=0, k=0; } i++, j=0, k=0, h=0; } return v; } int main() { int **m; int **n; int **v; n = m = (int**)malloc(sizeof(int) * N); // v6deljaem pamat' int i,j,k,h,f,l; srand(time(NULL)); for (i=0; i<N; i++){ m[i] = (int*)malloc(sizeof(int)*N);// v6deljaem pamat' for(j=0; j<N; j++){ m[j] = (int*)malloc(sizeof(int)*N);}} for (k=0; k<N; k++){ n[k] = (int*)malloc(sizeof(int)*N);// v6deljaem pamat' for(h=0; h<N; h++){ n[h] = (int*)malloc(sizeof(int)*N);}} for (i=0; i<N; i++){ for(j=0; j<N; j++){ *(*(m+j)+i) = (rand() % 10) + 1; }} // zapolnjaem matrix for (i=0; i<N; i++){ for(j=0; j<N; j++){ printf("%d\t", m[i][j]); } printf("\n"); } printf("\n*\n\n"); for (k=0; k<N; k++){ for(h=0; h<N; h++){ *(*(n+h)+k) = (rand() % 10) + 1; }} // zapolnjaem matrix for (k=0; k<N; k++){ for(h=0; h<N; h++){ printf("%d\t", n[k][h]); } printf("\n"); } printf("\n=\n\n"); v = func(m, n); for (i=0; i<N; i++) { for(j=0; j<N; j++) { printf("%d\t", *(*(v+i)+j)); } printf("\n\n"); } getch (); return 0; } P.S. Тем, кто поможет, плюсы, а также $$$ (призовой фонд 20 WMZ )
Jairam вы 2 коду malloc поменяй на new и тебе новый код а если тебе нужно по другому алгоритму то стучи по ICQ № 465-497-196
Просил решить задачу, но никто не отписАл... Вот, если у кого будет такая/похожая выкладываю решение: Program matrix2; Uses CRT; Var b:array [1..2,1..4] of real; i,j:integer; p,p1,p2:real; BEGIN ClrScr; b[1,1]:=-4.1; b[1,2]:=5.8; b[1,3]:=-6.7; b[1,4]:=4.3; b[2,1]:=2.1; b[2,2]:=-5.1; b[2,3]:=6.3; b[2,4]:=-4.7; Writeln('vivod matrx'); For i:= 1 to 2 do begin For j:=1 to 4 do begin Write(b[i,j]:3:1); Write(' '); end; Writeln; end; p:=0; p1:=0; p2:=1; For j:=1 to 4 do begin p1:=p1+b[1,j]; p2:=p2*b[2,j]; end; p:=p1-p2; Writeln('p=',p:6:2); readkey; END.
Экспертная система Всем привет !! Вообщем такая проблема? нужно написать экспертную систему по типу Prospector с использованием нечёткой логики и неточных данных , считающюю коээфиценты уверенности по формуле Байеса Может быть кто то уже делал что то подобное и есть примеры работ??
Всем привет! Люди помогите плЗзз. Вот задание: сформировать и вывести на экран вектор(масив одновымерный) из N целых случайных чисел, каторые принимают значения на отрезке [a,b]. Границы интервала ([a,b]) ввести с клавы. Найти среднее арифметическое случайных чисел, с них же найти максимальный минимальный елементы и их порядковые номера. Да чуть не забил, для работы с массивами нужно использовать УКАЗАТЕЛЬ(ЛИ).
только если есть готовые решения или их часть. На С/С++/c# надо написать прогу, в которой рисуется многогранник произвольный, который можно будет крутить в разные стороны. просто не очень охота изучать опенГЛ или директикс ЛИБО код на OpenGL для вывода различных многогранников.
Срочно нужна помоч. Помогите сделать задачи. первая: Номиналы россиыских рублей могут принимать значения 1,2,5,10,50,100,500,1000,5000. Копейки представить как 0.01 (1 копейка), 0.05 (5 копеек). 0.1 (10 копеек), 0.5 (50 копеек). Создать клаасс Money для работы с денежными суммами. Сумма должна быть представлена полями-номиналами, значениями которых должно быть количество купюр данного достоинства. Реализовать сложение сумм, вычитание сумм, деление сумм, деление суммы на дробное число, умножение на дробное число и операции соавнения. Дробная часть (копейки) при выводе на экран должны быть отделена от целой запятой. Вторая задача. Создать класс ModelWindow для работы с моделями экранных окон. В качестве полей задаются: заголовок окна, координаты левого верхного угла, размер по горизонтали, размер по вертикали, цвет окна, состояние "видимое/невидимое", состояние "с рамкой//без рамки". Координаты и размеры указываются в целых числах. Реализовать операции: передвижение окна по горизонтали. Во всех этих заданиях, помимо указанных взадании операций, обязательно должны быть реализованы следующие методы: # метод инициализации Init; # ввод с клавиатуры Read; # вывод на экран Display; # преобразование в строку tostring. Все задания должны быть реализованы тремя способами. 1. тип данных представляется структурой с необходимыми полями, а операции реализуются как внешние функции, которые получают объекты данного типа в качестве аргументов. 2. Как класс с закрытыми полями, где операции реализуются как методы класса. 3. инкапсулировать поля класса в независимой структуре и в ней реализовать методы Init(), Read(), Display(), tostring(). В основном классе должно быть поле данных, представленное объектом структурой.[/I][/QUOTE]