На этом форуме отвечают на конкретные вопросы. Фраза «я не понимаю, как решать» — это не вопрос. На вопрос «как решить задачу №X» вас отошлют к материалам сайта kpolyakov.spb.ru. За бессвязный поток слов и неспособность формулировать свои мысли — бан.

Если у вас не сходится ответ на какую-то задачу, пожалуйста сразу представляйте свое «правильное» решение.
Программы "заворачивайте" в тэг [pre2]...[/pre2], при этом сохраняются все отступы и применяется моноширинный шрифт. Если у вас используется сочетание "[i]" для обозначения элемента массива или строки, ставьте пробел после открывающей скобки. Иначе система выделит все дальнейшее курсивом.

Для регистрации на форуме щелкните по ссылке «Вход-регистрация» вверху страницы. В открывшееся окошко «ник» введите свою фамилию на русском языке (например, Иванов). В окошко «пароль» введите придуманный вами пароль, состоящий из латинских букв и цифр. Поставьте галочку в окошке «зарегистрироваться, я новый участник» и нажмите кнопку «ОК».

АвторСообщение



Сообщение: 13
ссылка на сообщение  Отправлено: 13.05.17 17:50. Заголовок: Сумма троек чисел, некратная четырем.


Здравствуйте, если вам не сложно, ответьте: может ли моё решение данной задачи оцениваться в 4 балла? На вход подаётся набор из троек неотрицательных чисел.
Сначала вводится кол-во троек, затем сами тройки чисел:
3
2 40 1000
9 87 3500
1234 874 99.
Необходимо найти сумму наибольших членов троек, некратную 4-ем. Если такая отсутствует, то выводится : 0.


Моё решение :

#include <stdio.h>
int main(void)
{ int j,sum,d,last,number;
char i = 0;
j=i=sum=d=last=number=0;
int max1,max2; // max1 - первое самое большое число, max2 - второе
max1=max2=0;
int Dmin = 1001;
printf ("Введитие кол-во троек:");
scanf("%d",&number);
int a[3]={0,0,0};
for (j=0;j<number;j++){ // НАЧАЛО БОЛЬШОГО ЦИКЛА ОБРАБОТКИ ТРОЙКИ ЧИСЕЛ

scanf("%d%d%d",&a[0],&a[1],&a[2]);

for (i=0;i<3;i++){
if (a[i]>=max1){
max1=a[i];
max2=max1;
}
}
sum = sum + max1;
if ((max1-max2)%4!=0) // нахожу разницу между двумя самыми большими числами из тройки, которая некратна четырем.
d = max1 - max2;
if (( max1 - (a[0]+a[1]+a[2] - max1 - max2))%4!=0) // нахожу разницу между самым большим и самым маленьким числом, так же не кратная четырем.
last = max1 - (a[0]+a[1]+a[2] - max1 - max2);
if (last<d)
d=last; // нахожу самую минимальную разницу между элементами, некратную четырем.
if (d<Dmin)
Dmin=d; // в конце цикла сравниваю с предыдущей разницей
max1=0;
max2=0; // обнуляю переменные для нахождения максимального элемента.
}//КОНЕЦ БОЛЬШОГО ЦИКЛА ОБРАБОТКИ ТРОЙКИ
if (sum%4==0 && Dmin <1001 && sum !=0){
sum = sum - Dmin;
printf("\n %d",sum);
}
if (sum %4!=0)
printf("\n %d",sum);
else if (sum == 0 || Dmin == 1001)printf("\n 0");
getchar(); // Просто чтобы консоль не закрылась сразу
getchar();
return 0;

}


Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 4 [только новые]





Сообщение: 14
ссылка на сообщение  Отправлено: 13.05.17 17:59. Заголовок: Я ведь правильно пон..


Я ведь правильно понимаю, что эффективнее нахождение максимума в тройке чисел не сделать, ведь даже функции max(),min() например в С++ зависят от кол-ва элементов,которые придётся выделять в памяти, прямо как и в моём "алгоритме"? В своей программе я их не использую, так как слышал, что их нет в стандарте Cи. Возможно в С11 есть, но это не точно. С другой стороны, если делать через max() min(),то не нужен будет индекс под массив a[3]. Но под индекс в тройке я выделил 1 байт, надеюсь это небольшой грех для ЕГЭ

Спасибо: 0 
ПрофильЦитата Ответить



Сообщение: 3
ссылка на сообщение  Отправлено: 13.05.17 18:30. Заголовок: Скинь, пожалуйста по..


Скинь, пожалуйста полное условие, по-моему я такую задачу уже решал, если память не изменяет
И судя по решению у тебя все верно

Спасибо: 0 
ПрофильЦитата Ответить



Сообщение: 15
ссылка на сообщение  Отправлено: 13.05.17 18:42. Заголовок: egorea1999 пишет: С..


egorea1999 пишет:

 цитата:
Скинь, пожалуйста полное условие, по-моему я такую задачу уже решал, если память не изменяет


http://i.imgur.com/4Z1Yvkk.jpg

Спасибо: 0 
ПрофильЦитата Ответить



Сообщение: 4
ссылка на сообщение  Отправлено: 13.05.17 18:56. Заголовок: Лови, вроде так: htt..


Лови, вроде так: https://pastebin.com/hemeP5dQ

Спасибо: 0 
ПрофильЦитата Ответить
Ответ:
1 2 3 4 5 6 7 8 9
видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 1969
Права: смайлы да, картинки да, шрифты нет, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет