C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
Help!, Помогите решить задачки по C++
Maddy
Отправлено: 22.01.2007, 09:35


Ученик-кочегар

Группа: Участник
Сообщений: 1



Помогите, пожалуйста, очень нужно решить несколько задач по C++.
1. Дана последовательность из 10 целых чисел. Найти сумму чисел
этой последовательности, расположенных между максимальным и
минимальными числами (в сумму включить и оба этих числа).
2. Получить массив B из массива A удалением n-й строки и k-го столбца.
3. Дано 10 символьных строк, состоящих из слов, разделенных пробелами.
Вывести список неповторяющихся слов.
wizard.gif
___________________________________________________________
Было вначале
И останется в конце.
Слово есть Слово.
nawok78
Отправлено: 24.01.2007, 10:46


Станционный диспетчер

Группа: Участник
Сообщений: 115



Ну ты лодырь!
1
CODE


#define NNN 10
int a[NNN] = {23,34,12,23,34,6,4,29,45,20};
int max=a[0], min=a[0], minp=0, maxp=0;
int s;

for (int i=1; i<NNN; i++)
{
  if (a[i]<min)
 {
    min = a[i]; minp=i;
 }
  if (a[i]>max)
 {
    max = a[i]; maxp=i;
 }
}
for (i=minp, s=0; i<=maxp; i++)
{
 s+=a[i];
}

nawok78
Отправлено: 24.01.2007, 11:18


Станционный диспетчер

Группа: Участник
Сообщений: 115



3
CODE

char *s[10]=
{
"дура д-к дурило",
"дура пень жопа",
"тоже жопа",
"пура редиска ######",
"дура лень жопа",
"человек жопа",
"дура но дурило",
"дура пень жопа",
"глупый жопа",
"ха-ха-ха жопа"
}
// Создаем массив слов
char **ss;
int i;
for (i=0; i<10; i++)
{
 for (char *s1=s[i]; s1; )
 {
    if((s2=strchr(''))!=NULL)
    {
       *s2=0;
       ss=realloc((++n)*sizeof(char*));
       ss[n-1]=strdup(s1);
       s1=s2+1;
    }
    else
    {
       ss=realloc((++n)*sizeof(char*));
       ss[n-1]=strdup(s1);
       s1=NULL;
    }
 }
}
//теперь удалим из массива одинаковое
for (i=0; i<n-1; i++)
{
 if (!ss[i]) continue;
 for (int j=i+1; j<n; j++)
 {
    if (!ss[j]) continue;
    if (ctrcmp(ss[i],ss[j])==0)
    {
       //убираем их нах
       free(ss[j]); ss[j]=NULL;
       free(ss[i]); ss[i]=NULL;
       break;
    }
 }
}

// осталось написать не пустые строки
// а за одно и память очистить
for (i=0; i<n; i++)
(
 if (ss[i])
 {
    fprintf (stdout, "%s\n", ss[i]);
    free (ss[i]); ss[i]=NULL;
 }
)
free(ss); ss=NULL;

Вернуться в Вопросы программирования в C++Builder