Maddy |
Отправлено: 22.01.2007, 09:35 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 1
|
Помогите, пожалуйста, очень нужно решить несколько задач по C++.
1. Дана последовательность из 10 целых чисел. Найти сумму чисел
этой последовательности, расположенных между максимальным и
минимальными числами (в сумму включить и оба этих числа).
2. Получить массив B из массива A удалением n-й строки и k-го столбца.
3. Дано 10 символьных строк, состоящих из слов, разделенных пробелами.
Вывести список неповторяющихся слов.
___________________________________________________________
Было вначале
И останется в конце.
Слово есть Слово.
|
|
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;
| |
|
|