IPB
ЛогинПароль:

> Внимание!

1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

2 страниц V  1 2 >  
 Ответить  Открыть новую тему 
> Одномерный Массив, Си
сообщение
Сообщение #1


Профи
****

Группа: Пользователи
Сообщений: 920
Пол: Женский
Реальное имя: Марина

Репутация: -  2  +


Задан целочисленный массив Х из 20 элементов. Определить количество соседств двух положительных и двух отрицательных чисел.

Натолкните на мысль: какие должны быть условия для указанного соседства.....
???
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


просто человек
******

Группа: Пользователи
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

Репутация: -  55  +


Соседство двух положительных и двух отрицательных - это:
-3 -3 3 3
3 3 -3 -3
или еще и
-3 3 -3 3
3 -3 3 -3
-3 3 3 -3
3 -3 -3 3
?


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Профи
****

Группа: Пользователи
Сообщений: 920
Пол: Женский
Реальное имя: Марина

Репутация: -  2  +


Цитата(мисс_граффити @ 15.02.2007 15:16) *

Соседство двух положительных и двух отрицательных - это:
-3 -3 3 3
3 3 -3 -3
или еще и
-3 3 -3 3
3 -3 3 -3
-3 3 3 -3
3 -3 -3 3
?

в условии задачи точно не определено , но лучше предусмотреть все варианты, приведённые выше.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


просто человек
******

Группа: Пользователи
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

Репутация: -  55  +


ок...
а с таким случаем как быть:
-3 -3 3 3 -3 -3 3 3
это сколько соседств?
...если считать соседствами все предложенные в сообщении #2 случаи....


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Профи
****

Группа: Пользователи
Сообщений: 920
Пол: Женский
Реальное имя: Марина

Репутация: -  2  +


Цитата(мисс_граффити @ 15.02.2007 18:09) *

ок...
а с таким случаем как быть:
-3 -3 3 3 -3 -3 3 3
это сколько соседств?
...если считать соседствами все предложенные в сообщении #2 случаи....

тогда рассматриваем этот вариант:
Соседство двух положительных и двух отрицательных - это:
-3 -3 3 3
3 3 -3 -3
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


просто человек
******

Группа: Пользователи
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

Репутация: -  55  +


то есть -3 -3 3 3 -3 -3 3 3 - это 3 соседства?


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Профи
****

Группа: Пользователи
Сообщений: 920
Пол: Женский
Реальное имя: Марина

Репутация: -  2  +


Цитата(мисс_граффити @ 15.02.2007 18:52) *

то есть -3 -3 3 3 -3 -3 3 3 - это 3 соседства?

ну не знаю....если точно следовать условию задачи, то нам нужны только такие соседства
5 5 -5 -5
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Гость






Ты можешь решить, какой из приведенных ниже вариантов ТЕБЯ устраивает?

(считается, что есть 3 соседства)
-3 -3 3 3 -3 -3 3 3
-3 -3 3 3 -3 -3 3 3
-3 -3 3 3 -3 -3 3 3

(считается, что есть только 2 соседства)
-3 -3 3 3 -3 -3 3 3
-3 -3 3 3 -3 -3 3 3
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Профи
****

Группа: Пользователи
Сообщений: 920
Пол: Женский
Реальное имя: Марина

Репутация: -  2  +


мне нужен такой вариант 5 5 -5 -5 5 5 -5 -5 - здесь 2 соседства
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10


Гость






Так:
#include <stdio.h>

int main() {
const int n = 20;
const int a[n] = {
5, 5, -5, -5, 5, 5, -5, -5, 0, 3, -1, 4, 5, 5, -5, -5, 5, 5, -5, -5
};

for(int i = 2, count = 0; i < n - 1; i++) {

if( ((a[i-2] > 0) && (a[i-1] > 0)) &&
((a[i ] < 0) && (a[i+1] < 0)) ) count += 1, i++;

}

printf("count = %d\n", count);
return 0;
}

?
 К началу страницы 
+ Ответить 
сообщение
Сообщение #11


Профи
****

Группа: Пользователи
Сообщений: 920
Пол: Женский
Реальное имя: Марина

Репутация: -  2  +


Цитата(Алена @ 16.02.2007 12:27) *

Так:
#include <stdio.h>

int main() {
const int n = 20;
const int a[n] = {
5, 5, -5, -5, 5, 5, -5, -5, 0, 3, -1, 4, 5, 5, -5, -5, 5, 5, -5, -5
};

for(int i = 2, count = 0; i < n - 1; i++) {

if( ((a[i-2] > 0) && (a[i-1] > 0)) &&
((a[i ] < 0) && (a[i+1] < 0)) ) count += 1, i++;

}

printf("count = %d\n", count);
return 0;
}

?

объясни пожалуйста один момент


return 0;


я пока в Си мало разбираюсь....эта строчка как-то связана с тем, что ф-я main возвращает значение или как?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #12


Гость






Цитата
эта строчка как-то связана с тем, что ф-я main возвращает значение или как?
Именно так. Эта строчка нужна для того, чтобы программа соответствовала Стандарту С++, который требует от каждой программы вернуть какое-либо значение. Если эту строчку убрать, то компилятор выдаст предупреждение. Если сделать void main() - то программа вообще не скомпилируется...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #13


Новичок
*

Группа: Пользователи
Сообщений: 47
Пол: Мужской
Реальное имя: Юрий

Репутация: -  0  +


Цитата
Если сделать void main() - то программа вообще не скомпилируется...

Разве???
Сколько раз писал
void main()
{
//здесь код
}

и все хорошо шло.И даже работало smile.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #14


Гость






Компилятор, поддерживающий Стандарт как положено - не должен пропускать этот код. Стандартом явно оговорено:
Цитата(Стандарт (3.6.1.2))
An implementation shall not predefine the main function. This function shall not be overloaded. It shall have a return type of type int, but otherwise its type is implementation-defined.
Все, что "implementation-defined" - есть очень большая вероятность, что будет НЕпереносимо на другие компиляторы, с int будет работать ВЕЗДЕ, ибо должно...

Попробуй
void main() {
}
откомпилировать GCC или Интеловским компилятором... Что будет?
 К началу страницы 
+ Ответить 
сообщение
Сообщение #15


Профи
****

Группа: Пользователи
Сообщений: 920
Пол: Женский
Реальное имя: Марина

Репутация: -  2  +


Цитата(volvo @ 16.02.2007 20:59) *

Именно так. Эта строчка нужна для того, чтобы программа соответствовала Стандарту С++, который требует от каждой программы вернуть какое-либо значение. Если эту строчку убрать, то компилятор выдаст предупреждение. Если сделать void main() - то программа вообще не скомпилируется...

а почему в этой строке мы прописываем именно 0? Там может быть другое число?
или таков стандарт?

Сообщение отредактировано: 18192123 -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #16


Гость






Может... Это то число, которое ты можешь вернуть в ОС как код завершения... Ноль - потому что обычно в качестве кода нормального завершения передается 0, другие значения - если надо сигнализировать об ошибке...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #17


Профи
****

Группа: Пользователи
Сообщений: 920
Пол: Женский
Реальное имя: Марина

Репутация: -  2  +


Цитата(volvo @ 16.02.2007 22:57) *

Может... Это то число, которое ты можешь вернуть в ОС как код завершения... Ноль - потому что обычно в качестве кода нормального завершения передается 0, другие значения - если надо сигнализировать об ошибке...

спасибо за разъяснение!
у меня возник ещё один вопрос. вот у меня в массиве 20 элементов, а как вывести эти значения на экран в таком виде:
x1 x2 x3 x4 x5
x6 x7 x8 x9 x10
x11 x12 x13 x14 x15
x16 x17 x18 x19 x20
если ввожу я эти элементы следующим образом:

int A[NUM],i;
printf ("введите 20 целых чисел:" );
for (i = 0; i < NUM; i++)
{
printf ("%d-ое число --> ", i);
scanf ("%d", &A[i]);
}


?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #18


Гость






Ну, вот так, например:
  for(i = 0; i < NUM; ++i)
printf(" %3d%s", A[i], ((i + 1)%5) ? "" : "\n");
 К началу страницы 
+ Ответить 
сообщение
Сообщение #19


Профи
****

Группа: Пользователи
Сообщений: 920
Пол: Женский
Реальное имя: Марина

Репутация: -  2  +


Объясните пожалуйста подробно, что значит строка:

printf(" %3d%s", A[i], ((i + 1)%5) ? "" : "\n");


?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #20


Гость






18192123, это такая форма записи условного оператора. Вместо
if(a == b) c;
else d;

можно написать:
(a == b) ? c : d;

Следовательно, эта строка просто печатает пустой символ (ничего не печатает), если остаток от деления текущего индекса + 1 на пять ненулевой (то есть, есть увеличенный на 1 индекс не кратен 5), а если остаток - ноль (индекс кратен 5), то печатается символ "\n" - перевод строки...
 К началу страницы 
+ Ответить 

2 страниц V  1 2 >
 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 5.10.2024 5:07
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name