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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.11.2012, 21:48   #1
zenya21
 
Регистрация: 29.10.2012
Сообщений: 7
По умолчанию В массиве вставить новый элемент со значением Р вслед за наибольшим из отрицательных элементов, C

Есть задача. "Си"
В массиве A=(a1, а2, ..., аn) вставить новый элемент со значением Р вслед за наибольшим из отрицательных элементов этого массива.
Написал код, вывводит верно, но как сделать, чтобы P "добавлялся в массив", а не выводился отдельно.
Код:
#include <stdio.h>
const int N=10; 
main()
{
int A[N];
int i,P,max=0,G,j;
printf("vvedite P\n");
scanf("%d", &P);
for(i=0; i<N; i++) 
 
 
{printf("vvedite A[%d]", i);
scanf("%d", &A[i]);} 
 
 
for (i=0; i<N; i++)
{
if (A[i]<0) {G=A[i];
        break;
        }
}
 
 
for (i=0; i<N; i++)
{
if ((A[i]<max) && (A[i]>G)){ G=A[i]; 
               j=i;
            }
}
for (i=0; i<=j; i++)
 
{printf("%d",A[i]);}
printf("%d", P);
for (i=j+1; i<N; i++)
{printf("%d", A[i]);}
 
 
return 0;
}

Последний раз редактировалось zenya21; 13.11.2012 в 21:52.
zenya21 вне форума Ответить с цитированием
Старый 17.02.2014, 21:33   #2
Erkesh
Пользователь
 
Регистрация: 30.09.2012
Сообщений: 26
По умолчанию в паскале

а как будет в паскале (особенности)
Erkesh вне форума Ответить с цитированием
Старый 17.02.2014, 22:25   #3
PathTheir
Пользователь
 
Аватар для PathTheir
 
Регистрация: 14.04.2013
Сообщений: 62
По умолчанию

Вот программа
Код:
#include <stdio.h>
#include <string.h>

const int n = 11;

int a[n];
int main(int argc, char const *argv[])
{
	int i, p, max = -100000, imax = -1;

	puts("Enter P:");
	scanf("%d", &p);

	for (i = 0; i < n; i++)
	{
		printf("Enter a[%d]: ", i);
		scanf("%d", &a[i]);

		if (i != 0 && a[i] < 0 && a[i] > max)
		{
			max = a[i];
			imax = i;
		}
	}

	memmove(&a[imax + 2], &a[imax + 1], sizeof(int) * (n - imax));

	a[imax + 1] = p;

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


	return 0;
}
+ на ideone http://ideone.com/oA7rMb

Подразумеваю, что нет элементов, меньших -100000, и в массиве есть хотя бы одно отрицательное число.
PathTheir вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
массиве X(N) найти максимальный элемент среди положительных элементов массива и минимальный среди отрицательных элементов. sorok Общие вопросы C/C++ 2 20.03.2012 12:18
(PASCAL ABC)Дана Матрица, найти индексы всех эл-ов с наибольшим значением, если таких элементов несколько Grandhustla Помощь студентам 0 25.05.2011 16:06
C++. найти сумму элементов строки, в которой расположен элемент с наименьшим значением. Снс Помощь студентам 2 18.10.2010 22:23
В двумерном массиве вставить перед всеми столбцами, в которых нет отрицательных элементов, второй столбец razor052 Паскаль, Turbo Pascal, PascalABC.NET 2 16.04.2010 14:33
вычислить сумму отрицательных элементов в массиве only_win Паскаль, Turbo Pascal, PascalABC.NET 2 25.09.2007 15:22