|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - [решено] Помогите решить задачу по С++ |
|
C/C++ - [решено] Помогите решить задачу по С++
|
Будем жить, Маэстро... Сообщения: 6694
|
Профиль | Сайт | Отправить PM | Цитировать |
------- Отправлено: 16:09, 27-11-2010 | #161 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 2
|
Профиль | Отправить PM | Цитировать #include <iostream> using namespace std; int main(){ int n; int g=0; char asd[10000][10000]; cin>>n; for (int i=0; i<n; i++){ for (int j=0; j<n; j++){ cin>>asd[i][j]; } } for (int i=0; i<n; i++){ for (int j=0; j<n; j++){ if ((i+j)%2==0) if (asd[i][j]<asd[i+1][j] && asd[i-1][j]<asd[i][j+1] && asd[i][j]<asd[i][j-1] && asd[i][j]<asd[i+1][j+1] && asd[i][j]<asd[i-1][j-1] && asd[i][j]<asd[i+1][j-1] && asd[i][j]<asd[i-1][j+1] && asd[i][j]<asd[i+1][j]) g++; else if ((i+j)%2==1) if (asd[i][j]<asd[i-1][j] && asd[i][j]<asd[i-1][j+1] && asd[i][j]<asd[i+1][j] && asd[i][j]<asd[i+1][j+1] && asd[i][j]<asd[i][j+1]) g++; else if ((i+j==n-1 || i+j==0)) if (asd[i][j]<asd[i-1][j] && asd[i][j]<asd[i-1][j+1] && asd[i][j]<asd[i][j+1]) g++; } } cout<<g; return 0; } |
Последний раз редактировалось Drongo, 01-12-2010 в 00:31. Причина: Оформляйте листинки тегом [code] - # иначе буду удалять такие сообщения! Отправлено: 13:26, 29-11-2010 | #162 |
Новый участник Сообщения: 17
|
Профиль | Отправить PM | Цитировать Вводится последовательность слов различной длины(не более 10 символов).Слова разделены пробелом.В конце последовательности стоит символ "точка".Необходимо составить структурированную программу для печати слов в 2 стлбца так чтобы в левом столбце печатались слова длиной<=5 символов а в правом больше 5.Помогите пожалуйста((
//по идее нужно объявить 2 массива,чтобы один заполнялся словами меньше 5 а другой больше 5...правда сложновато как то(( |
Отправлено: 21:07, 30-11-2010 | #163 |
Будем жить, Маэстро... Сообщения: 6694
|
Профиль | Сайт | Отправить PM | Цитировать DennyD, Сначала вам нужно предложение разбить на лексемы(на отдельные слова) и поместить все слова в массив(WordArray), дальше проходя по этому массиву в цикле проверять функцией strlen длину слова и если меньше или равно пяти помещать в массив WordMinimum иначе в WordMaximum
|
------- Отправлено: 00:44, 01-12-2010 | #164 |
Новый участник Сообщения: 17
|
Профиль | Отправить PM | Цитировать То есть идя по первоначальной строке натыкаясь на символ пробел добавляем слово в массив(word array)?
|
Отправлено: 10:14, 01-12-2010 | #165 |
Новый участник Сообщения: 17
|
Профиль | Отправить PM | Цитировать можно поподробнее пожалуйста
Цитата Drongo:
|
|
Отправлено: 11:07, 01-12-2010 | #166 |
Будем жить, Маэстро... Сообщения: 6694
|
Профиль | Сайт | Отправить PM | Цитировать DennyD, Ммм... К сожалению я не умею динамически создавать массив указателей на char. Смог сделать разбивку предложений по словам
#include <iostream> using namespace std; #include <cstring> const int size = 510; const int sizeLeksem = 250; // размер массива лексем int main() { char tekst[size]; const char *leksem[sizeLeksem]; // массив указателей на лексемы char *tokenPtr; // переменная-указатель на лексемы int index, min = 0, max = 0, counterLeksem = 0; // счётчик обработаных лексем в массиве указателей "*leksem" cout<<" ENTER TEKST NE BOLSHE 510 SIMVOLOV\n"; cin.getline(tekst, size, '\n'); // Разбиваем полученый текст на слова и помещаем каждое слово в массив "leksem" tokenPtr = strtok(tekst, " "); // найти первую лексему leksem[counterLeksem] = tokenPtr; // присвоить первую лексему массиву указателей while(tokenPtr != NULL){ // пока указатель на лексему не равен NULL, продолжать leksem[counterLeksem] = tokenPtr; // присвоить следующую лексему массиву указателей if(strlen(tokenPtr) <= 5) // Сколько найденых слов с буквами меньше 5 min++; else // Сколько найденых слов с буквами больше 5 max++; ++counterLeksem; // перейти к следующему индексу массива tokenPtr = strtok(NULL, " "); // нахождение следующей лексемы } // Динамически создаём массив указателей на char // Раскидываем слова меньше пяти букву и больше пяти букв // По своим массивам. // вот тут у меня загвозка, не могу создать массив указателей char *wordMin = new char[min]; char *wordMax = new char[max]; min = 0; max = 0; for(int i = 0; i < counterLeksem; i++){ if(strlen(leksem[i]) <= 5) wordMin[min++] = leksem[i]; else wordMax[max++] = leksem[i]; } for(int j = 0; j < min; j++) cout<<"Word Minimum 5 = "<<wordMin[j]<<endl; for(int a = 0; a < max; a++) cout<<"Word Maximum 5 = "<<wordMin[a]<<endl; cin>>min; return 0; } |
------- Отправлено: 16:57, 01-12-2010 | #167 |
Новый участник Сообщения: 17
|
Профиль | Отправить PM | Цитировать по идее легче делается возможно даже без указателей,подойду к преподу завтра может че подскажет дельное,ну спасибо во всяком случае))
Вот еще задачка не знаю как сделать(( задана некоторая запись длиной N в которой подряд несколько одинаковых символов.Составить программу вывода расположеных подряд символов и их колличества,т.е. ожидаемый результат: ВВод:ааььттти Вывод:а-2 ь-2 т-3 |
Отправлено: 22:46, 02-12-2010 | #168 |
Необычный Сообщения: 4463
|
Профиль | Сайт | Отправить PM | Цитировать DennyD, просматривать строку, попутно считая кол-во повторов символа. Как только перестал повторяться, делаем соотв. вывод.
|
------- Отправлено: 09:33, 03-12-2010 | #169 |
Новый участник Сообщения: 17
|
Профиль | Отправить PM | Цитировать задана некоторая запись длиной N в которой подряд несколько одинаковых символов.Составить программу вывода расположеных подряд символов и их колличества.
Вот моя программа: #include <conio.h> #include <iostream.h> #include <stdio.h> #define n 80 void main() { char S[n]; int i,k; gets(S); for (i=0;i<strlen(S)-1;i++) if (S[i]==S[i+1]) { k=1; k=k+1; cout<<S[i]<<"-"<<k<<"\n"; } k=0; getch(); } что надо исправить чтобы считала более 2х символов расположеных подряд? То есть при вводе "аассс" мне выдается результат а-2,с-2,с-2. |
Последний раз редактировалось Drongo, 05-12-2010 в 21:14. Причина: Оформляйте код тегом [code] = # последнее предупреждение!!! Отправлено: 15:45, 05-12-2010 | #170 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
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 |
|