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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.01.2015, 15:04   #1
EasyMak
Пользователь
 
Регистрация: 26.11.2014
Сообщений: 27
По умолчанию Удалить из массива первый отрицательный элемент.

Здравствуйте.
Помогите пожалуйста разобраться в моей проблеме.
Хочу удалить первый отрицательный элемент из массива.
В результате выходит, что-то непонятное.
Вот код:
Код:
#include <stdio.h>
#include <stdlib.h>

int main(){
	int a[20];
	int *masf;
	int i,j,otr;
	int size=20;
	printf("Enter array: \n");
	for(i=0;i<20;i++){
		scanf("%d",&a[i]);
	}
	otr=0;
	for(i=0;i<20;i++){
		if(a[i]<0)
		a[i]=a[otr];
		size--;
		break;
	}
	if(size==20){
		printf("Your array: \n");
		for(i=0;i<20;i++){
			printf("%d ",&a[i]);
		}
		return 0;
	}
	else{
	masf=(int*)malloc(size*sizeof(int));
	printf("Your array: \n");
	for(j=0;j<size;j++){
		if(masf[j]==a[otr]) continue;
		printf("%d ",masf[j]);
	}
}
	free(masf);
        return 0;
    }
EasyMak вне форума Ответить с цитированием
Старый 19.01.2015, 15:07   #2
EasyMak
Пользователь
 
Регистрация: 26.11.2014
Сообщений: 27
По умолчанию

Помогите пожалуйста! завтра сдать надо...
EasyMak вне форума Ответить с цитированием
Старый 19.01.2015, 15:15   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А "удалить" всмысле переписать в новый массив без удаленного, или просто не выводить на экран?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 19.01.2015, 16:13   #4
Scorpius
Пользователь
 
Регистрация: 06.10.2014
Сообщений: 26
По умолчанию

Цитата:
Сообщение от EasyMak Посмотреть сообщение
Здравствуйте.
Помогите пожалуйста разобраться в моей проблеме.
Хочу удалить первый отрицательный элемент из массива.
В результате выходит, что-то непонятное.
Поправил, сейчас просто удаленный элемент не выводится на экран, уберешь комментарии будет через копирование в новый массив без удаленного.

Код:
#include <stdio.h>
#include <stdlib.h>

int main()
{
	int a[20];
	int *masf;
	int i,j,otr;
	int size=20;
	printf("Enter array: \n");
	for(i=0;i<20;i++)
	{
		scanf("%d",&a[i]);
	}
	otr=-1;
	for(i=0;i<20;i++)
	{
		if(a[i]<0)
		{
			otr=i;
			size--;
			break;
		}
	}
//	masf=(int*)malloc(size*sizeof(int));
//	j=0;
	printf("Your array: \n");
	for(i=0; i<20; ++i)
	{
		if(i==otr) continue;
//		masf[j] = a[i];
//		printf("%d ", masf[j]);
//		++j;
		printf("%d ", a[i]);
	}
//	free(masf);
	return 0;
}
Не всегда говори то, что знаешь, но всегда знай, что говоришь.

Последний раз редактировалось Scorpius; 19.01.2015 в 16:17.
Scorpius вне форума Ответить с цитированием
Старый 19.01.2015, 17:40   #5
EasyMak
Пользователь
 
Регистрация: 26.11.2014
Сообщений: 27
По умолчанию

Scorpius, спасибо, выручили)
EasyMak вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Указатели в Паскале: Программу, которая удаляет из линейного списка целых чисел первый отрицательный элемент Victor1995 Помощь студентам 8 24.12.2013 11:19
В каджом столбце массива А поменять местами первый отрицательный элемент с последним элементом столбца. Carmen Помощь студентам 1 31.05.2011 19:41
найти первый отрицательный элемент массива имеющий чётный номер (Delphi) Vanger Помощь студентам 5 25.01.2011 11:41
Паскаль. Первый отрицательный элемент. DaRus Помощь студентам 7 18.12.2009 21:26