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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.06.2015, 20:26   #1
anstsiya
 
Регистрация: 23.06.2015
Сообщений: 9
Печаль Дано натуральное число n и действительные числа a1,…, an. Необходимо...

Помогите,пожалуйста,написать программу на С.

Дано натуральное число n и действительные числа a1,…, an. Необходимо:
1) получить новую последовательность b1,…, bn путем замены отрицательных членов начальной последовательности их квадратами;
2) если члены последовательности b1,…, bn образуют неубывающую последовательность, то получить суму членов начальной последовательности, иначе получить их произведение
anstsiya вне форума Ответить с цитированием
Старый 23.06.2015, 20:44   #2
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Это в каком детском садике такие задачки раздают? Хочу записаться в старшую группу.

Что конкретно у тебя не получается?
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 23.06.2015, 21:20   #3
anstsiya
 
Регистрация: 23.06.2015
Сообщений: 9
По умолчанию

ну,на данный момент я вывела последовательность от а1 до аn,но теперь немного не могу сообразить как именно выбрать отрицательные значения и заменить их квадратами.
Код:
#include<stdio.h>
#include<string.h>
#include<ctype.h>
#include <locale.h>
int main()
{
    int n,i;
    int a[100];
    setlocale(LC_ALL,".1251");

    printf("Введите n-натуральное :  ");
    scanf("%d",&n);

    printf("Введите a1: ");
    scanf("%d",&a[1]);

    for(i=a[1];i<=n;i++)
    {
        a[i]=i+n%2;
        printf("%d, ",a[i]);
    }

}

Последний раз редактировалось Stilet; 02.07.2015 в 11:50.
anstsiya вне форума Ответить с цитированием
Старый 23.06.2015, 21:22   #4
Croessmah
Вредный кошак
Участник клуба
 
Аватар для Croessmah
 
Регистрация: 14.10.2012
Сообщений: 1,159
По умолчанию

Цитата:
выбрать отрицательные значения и заменить их квадратами.
Код:
цикл по массиву
   если a[i] < 0 то 
      b[i] = a[i] * a[i] ; 
   иначе
      b[i] = a[i] ;

Последний раз редактировалось Croessmah; 23.06.2015 в 21:25.
Croessmah вне форума Ответить с цитированием
Старый 23.06.2015, 21:34   #5
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Цитата:
немного не могу сообразить
звучит, как "немного беременна"
Цитата:
как именно выбрать отрицательные значения
отрицательные - это такие, которые меньше нуля.
Цитата:
заменить их квадратами
квадрат значения = произведению значения на него же, но только один раз.
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 23.06.2015, 23:49   #6
anstsiya
 
Регистрация: 23.06.2015
Сообщений: 9
По умолчанию

не выходит вывести последовательность b1,...,bn
Код:
#include<stdio.h>
#include<string.h>
#include<ctype.h>
#include <locale.h>


void func(int *a,int *b,int n)
{
int i;

for(i=a[1];i<=n;i++)
{
if(a[i]<0)
{
b[i]=a[i]*a[i];
printf("%d, ",b[i]);
}
else
{
b[i]=a[i];
printf("%d, ",b[i]);
}


}

}

int main()
{
int n,i;
int a[100];
int b[100];
setlocale(LC_ALL,".1251");

printf("Введите n-натуральное : ");
scanf("%d",&n);

printf("Введите a1: ");
scanf("%d",&a[1]);

for(i=a[1];i<=n;i++)
{
a[i]=i+n%2;
printf("%d, ",a[i]);
}
printf("\n");

func(a,b,n);
}

Последний раз редактировалось Stilet; 02.07.2015 в 11:50.
anstsiya вне форума Ответить с цитированием
Старый 29.06.2015, 16:06   #7
Shad0wF1rst
Форумчанин
 
Регистрация: 11.01.2013
Сообщений: 149
По умолчанию

Цитата:
Сообщение от anstsiya Посмотреть сообщение
не выходит вывести последовательность b1,...,bn

for(i=a[1];i<=n;i++)
{
if(a[i]<0)
{
b[i]=a[i]*a[i];
printf("%d, ",b[i]);
}
else
{
b[i]=a[i];
printf("%d, ",b[i]);
}
}
Я думаю в этом участке у вас ошибка. Вроде i должно быть равно 0 а не a[1].
Да и так будет локоничнее:
Код:
for(i=0;i<n;i++)
{
   b[i] = (a[i]<0) ? a[i]*a[i] : a[i];
   printf("%d, ",b[i]);
}
Может это и чушь, но это моя чушь и я ее никому не отдам.
Shad0wF1rst вне форума Ответить с цитированием
Старый 29.06.2015, 16:42   #8
Bugrimov
C/C++, Java
Участник клуба
 
Аватар для Bugrimov
 
Регистрация: 28.03.2012
Сообщений: 1,679
По умолчанию

Как вариант функция для определения возрастающей последовательности
Код:
public static boolean test(int [] array) {
        int temp = array[0];
        for (int i = 1; i < array.length; i++) {

            if(array[i] > temp || temp == array[i]) {
                temp = array[i];
            }
            else {
                return false;
            }
        }
        return true;
    }
Правда язык не Си, но общая идея такая.
"Keep it simple" - придерживайтесь простоты!
Уильям Оккам - "Не следует множить сущее без необходимости"
Сложность - враг простоты и удобства!
Bugrimov вне форума Ответить с цитированием
Старый 29.06.2015, 17:06   #9
RAFA91
Заблокирован
 
Регистрация: 06.02.2011
Сообщений: 1,999
По умолчанию

а к чиму public static указанно ?
RAFA91 вне форума Ответить с цитированием
Старый 02.07.2015, 09:17   #10
Shad0wF1rst
Форумчанин
 
Регистрация: 11.01.2013
Сообщений: 149
По умолчанию

Цитата:
Сообщение от RAFA91 Посмотреть сообщение
а к чиму public static указанно ?
Это скорее всего язык JAVA там так принято.
Может это и чушь, но это моя чушь и я ее никому не отдам.
Shad0wF1rst вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Даны натуральное число n, действительные числа a, h, b, d0,..., dn yzen Помощь студентам 1 18.11.2012 10:04
Дано натуральное число n и действительные числа а1, а2, а3, ..., an (а1≠0) нужно определить какой член находится ранее. Hom94ok Паскаль, Turbo Pascal, PascalABC.NET 0 12.03.2012 17:52
Дано действительные числа х и натуральное n=5..10. Вычислить функции. Sh@rky Общие вопросы Delphi 1 01.11.2010 12:56
Дано действительные числа х и натуральное n=5..10. Вычислить функции.. Sh@rky Общие вопросы Delphi 1 31.10.2010 23:47
Дано действительные числа х и натуральное n=5..10. Вычислить функции Sh@rky Общие вопросы Delphi 1 31.10.2010 14:18