Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.10.2013, 20:15   #1
Progressko
Новичок
Джуниор
 
Регистрация: 30.10.2013
Сообщений: 3
По умолчанию Все отрицательные элементы заменить на сумму, а положительные на полусумму предшествующих и последующих элементов этого массива.

Здравствуйте, помогите пожалуйста написать программу в СИ, информатику знаю, но плоховато для того что бы написать задачку.
Вот условия " Все отрицательные элементы заменить на сумму, а положительные
на полусумму предшествующих и последующих элементов этого массива.
"
Буду признателен если сможете объяснить каждое действие.
За ранее огромное спасибо.
Progressko вне форума Ответить с цитированием
Старый 30.10.2013, 20:41   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Код:
//Описываем массив, общую сумму, и переменку для цикла
int a[1000],i,sum=0;
//Сам цикл в котором
for(i=0;i<1000;i++){
// вводим массив
 scanf("%f",&a[i]);
// и считаем сумму
 sum+=a[i];
}
// Цикл для замены по условию
for(i=0;i<1000;i++){
// если отрицательное
 if(a[i]<0)  
 //Отнимаем его от суммы, и вписываем
  a[i]=sum-a[i]; 
 // Иначе отнимаем от суммы и вписываем полусумму без него
 else a[i]=(sum-a[i])/2;
// Сразу выводим на печать
 printf("%5.2",a[i]);
}
Код понятен?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 30.10.2013, 20:50   #3
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

А можно пару вопросов?
Цитата:
scanf("%f",&a[i]);
Дык ведь f- вещественное, а массив целый!
Цитата:
sum+=a[i];
Супер!!

Цитата:
printf("%5.2",a[i]);
А здесь ничего не пропущенно?
Poma][a вне форума Ответить с цитированием
Старый 30.10.2013, 20:52   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
Дык ведь f- вещественное, а массив целый!
Упс...
Цитата:
А здесь ничего не пропущенно?
Еще один упс
Вывод: Пойду стрелять в таймшифту. Видимо целый день изучения Линукса на работе сказываться начинает )
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 30.10.2013, 20:55   #5
Progressko
Новичок
Джуниор
 
Регистрация: 30.10.2013
Сообщений: 3
По умолчанию

Я так понял код немного не верен?

Вот делал код, но ничего не получилось.

Код:
	
#include <stdio.h>
void main()
{
int a,n,summ;
n=10;
scanf ("%d", &n);
int m[n];
printf ("vvedite elemeti mass");
for (int i=0; i<=n; i++)
m[i] =scanf("%d", &a);
{

printf("%d", m[i]);
}
summ=0;
for (int i=0; i<=n; i++)
{
summ:=summ+m[i];
}
for (int i=0; i<=n; i++)
{
if (m[i]<0)
{
m[i]=summ;
}
else
{
m[i]=(summ-m[i])/2;
}
}
for (int i=0; i<=n; i++)
{ 
printf("%d", m[i]);
}
}

Последний раз редактировалось Stilet; 30.10.2013 в 21:19.
Progressko вне форума Ответить с цитированием
Старый 30.10.2013, 20:56   #6
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Цитата:
Пойду стрелять в таймшифту.
Не дай Бог!

Цитата:
Я так понял код немного не верен?
код верен, просто Виталий решил показать Вам, что бесплатный и полностью готовый сыр бывает только..

Цитата:
Вот делал код, но ничего не получилось.
Посмотри код Stilet'a, почитай комментарии, пойми где твой косяк, возрадуйся

Из того что сразу бросается в глаза :
Цитата:
for (int i=0; i<=n; i++)
Пишем for (int i = 0; i < n; i++)

Осталось лишь понять, какую суперскую вещь делает Виталий в своём коде с summ, перенять это.. и будет тебе счастье..

Последний раз редактировалось Poma][a; 30.10.2013 в 21:00.
Poma][a вне форума Ответить с цитированием
Старый 30.10.2013, 21:13   #7
Progressko
Новичок
Джуниор
 
Регистрация: 30.10.2013
Сообщений: 3
По умолчанию

Спасибо, буду решать проблему.
Progressko вне форума Ответить с цитированием
Старый 30.10.2013, 21:20   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
Не дай Бог!
Да ладно... Нормальный шутер.
Цитата:
код немного не верен?
Ну да. Очепятки есть.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 30.10.2013, 21:26   #9
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Цитата:
Да ладно... Нормальный шутер.
Может и нормальный, зато как будет страдать форум!
Poma][a вне форума Ответить с цитированием
Старый 31.10.2013, 00:04   #10
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Горечко!. Что бы не плодил тем вот тебе рабочий пример:
Код:
#include <stdio.h>
#include <stdlib.h>

int main()
{
    //Описываем массив, общую сумму, и переменку для цикла
const int n=10;
int a[n],i,sum=0;
//Сам цикл в котором
for(i=0;i<n;i++){
// вводим массив
 a[i]=100-rand()%100; printf("%5d",a[i]);
// и считаем сумму
 sum+=a[i];
}
printf("\n");
// Цикл для замены по условию
for(i=0;i<n;i++){
// если отрицательное
 if(a[i]<0)
 //Отнимаем его от суммы, и вписываем
  a[i]=sum-a[i];
 // Иначе отнимаем от суммы и вписываем полусумму без него
 else a[i]=(sum-a[i])/2;
// Сразу выводим на печать
 printf("%5d",a[i]);
}
    getchar();
    return 0;
}
Все равно нет надежды на нынешнею молодь... Совсем распоясались ка СССР развалился.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Записать положительные элементы массива X подряд в массив Y. Определить k – количество положительных элементов. Вычислит сумму programmerr Общие вопросы C/C++ 7 16.02.2013 16:40
Все отрицательные элементы массива увеличить на величину, равную среднему значению положительных элементов массива ksenia/shtepa C# (си шарп) 4 04.05.2012 19:10
Все отрицательные элементы массива А заменить на сумму, а положительные на полусумму предшествующих Lada05 Помощь студентам 1 27.10.2010 15:44
Pascal - Найти сумму всех ее отрицательных элементов и заменить ею все диагональные элементы этой матрицы NewBi Паскаль, Turbo Pascal, PascalABC.NET 2 24.04.2010 09:15
в начале все отрицательные, затем все положительные элементы в матрице motaro Паскаль, Turbo Pascal, PascalABC.NET 2 07.03.2008 19:16