ЗАДАНИЕ: Случайным образом генерируется массив чисел. Пользователь вводит числа a и b. Заменить элемент массива на
сумму его соседей, если элемент массива четный и номер его лежит в промежутке от a до b.
#include
#include
#include
int main()
{
system ("chcp 1251 > nul");
printf("\n Условие: Случайным образом генерируется массив чисел. Пользователь вводит числа a и b. Заменить элемент массива на сумму его соседей, если элемент массива четный и номер его лежит в промежутке от a до b. \n" );
int n;
srand (time (NULL));
printf("\t Введите размерность массива -> ", n);
scanf("%i",&n);
int mas[n];
int i;
for(i=0; i < n; i++)
mas[i] =rand()%10;
for(i=0; i < n; i++)
printf("%i ", mas[i]) ; // вывод на экран
int a,b,j;
printf("\n\t Введите a-> ", a);
scanf("%i",&a);
printf("\n\t Введите b-> ", b);
scanf("%i",&b);
int *d;// объявляем d как указатель на целое
d=(int*) malloc(n); // выделяем под массив типа int* размер памяти
int k=0;
for (i=1; i=a) && (i<=b)) && ((i>0) && (i0)
{
for ( j=k; j>0; j--)
{
mas[i+j-k-1]=d[j-1];
k=0;
}
}
}
free(d);
printf("Преобразованный массив: \n");
for(i=0; i < n; i++)
printf("%i ", mas[i]) ;
printf("\n");
return(0);
}
Другие языки программирования и технологии
ПОМОГИТЕ ПОЖАЛУЙСТА ИСПРАВИТЬ КОД, НЕ МОГУ ПОНЯТЬ В ЧЁМ ПРИЧИНА, ПОЧЕМУ НЕ ПРАВИЛЬНО РАБОТАЕТ? ЯЗЫК СИ.
Есть замечания по поводу условия:
1. нигде не сказано, что нужно вводить a <= b и что хоть один элемент массива попадет в диапазон [a, b] (например, оба больше n)
2. первый и последний элементы массива не имеют соседей
Есть замечание по поводу реализации:
int mas[n]; // это не всегда работает, некоторые компиляторы отказываются это компилировать
и
int *d = (int*) malloc(n); // выглядит забавно при n < 0
вы явно скопировали код откуда-то, нужно использовать либо то, либо другое
Если в задаче что-то не получается, то нужно разбить её на шаги, чтобы каждый следующий шаг был простой:
1. Вывести чётные элементы массива
2. Вывести чётные элементы массива, номера которых попадают в диапазон [a, b]
3. Модифицировать шаг 2, чтобы вместо элемента массива выводилась сумма его соседних
!!!не забыть проверить, что соседние есть - проверка на начало и конец массива
4. Добавить к шагу 3 вывод оставшихся элементов массива без изменений
Если вам достаточно вывода измененного массива, то шаг 4 - решение, если нет, то вместо вывода нужно присваивать значение новому элементу массива.
1. нигде не сказано, что нужно вводить a <= b и что хоть один элемент массива попадет в диапазон [a, b] (например, оба больше n)
2. первый и последний элементы массива не имеют соседей
Есть замечание по поводу реализации:
int mas[n]; // это не всегда работает, некоторые компиляторы отказываются это компилировать
и
int *d = (int*) malloc(n); // выглядит забавно при n < 0
вы явно скопировали код откуда-то, нужно использовать либо то, либо другое
Если в задаче что-то не получается, то нужно разбить её на шаги, чтобы каждый следующий шаг был простой:
1. Вывести чётные элементы массива
2. Вывести чётные элементы массива, номера которых попадают в диапазон [a, b]
3. Модифицировать шаг 2, чтобы вместо элемента массива выводилась сумма его соседних
!!!не забыть проверить, что соседние есть - проверка на начало и конец массива
4. Добавить к шагу 3 вывод оставшихся элементов массива без изменений
Если вам достаточно вывода измененного массива, то шаг 4 - решение, если нет, то вместо вывода нужно присваивать значение новому элементу массива.
d=(int*) malloc(n); // выделяем под массив типа int* размер памяти
int k=0;
for (i=1; i=a) && (i<=b)) && ((i>0) && (i0)
{
for ( j=k; j>0; j--)
{
mas[i+j-k-1]=d[j-1];
В данном куске программы нет ни одного присвоения массиву d, но чтение из массива d идет,
может ответы программу покорежили, нужно выкладывать на pastebin
int k=0;
for (i=1; i=a) && (i<=b)) && ((i>0) && (i0)
{
for ( j=k; j>0; j--)
{
mas[i+j-k-1]=d[j-1];
В данном куске программы нет ни одного присвоения массиву d, но чтение из массива d идет,
может ответы программу покорежили, нужно выкладывать на pastebin
#include
#include
#include
Это что? тут должны быть указаны файлы которые нужно include
#include
#include
Это что? тут должны быть указаны файлы которые нужно include
Dima Chalov
Первый раз видишь как мейл код режет?
Похожие вопросы
- Помогите пожалуйста исправить код программы на visual c++!!
- помогите пожалуйста проверить код на языке си, программа работает неверно - не выдает сумму массива Z
- Помогите, пожалуйста, исправить ошибку в коде С++!!
- Помогите пожалуйста перевести код программы с C++ на Си.
- HTML! помогите пожалуйста написать код для сайта простого сайта!
- люди, помогите пожалуйста найти код от вируса
- Народ помогите пожалуйста, нашел код но не знаю как он работает! если можно на каждом строке напишите коммы заранее спс
- Подскажите пожалуйста еще с одной программой, тут я вобще не знаю с чего начинать, язык СИ!!!!А не с++
- я плохо знаю с++ помогите пожалуйста исправить программу
- Помогите, пожалуйста, с кодом по С++. Пожалуйста, а то щас помру на сессии.