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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.12.2012, 02:48   #1
KOSTAS72RUS
 
Регистрация: 22.12.2012
Сообщений: 3
Восклицание Дан массив A(1:n)

Найти все отрицательные и положительные числа..также нулевые..напечатать их..вывести массив

PHP код:
#include <stdio.h>
#include <conio.h>
#include <alloc.h>
#include <string.h>
char str[]="JMI KLAVY...";
void press()
{
cputs(str);
getch();
}
main()
{
int i,k,n,s,o,*a;
FILE *in;
clrscr();
in=fopen("1.dat","r");
      
printf("KOLICHESTVO n: ");
      
scanf("%d",&n);
for (
i=0;i<n;i++)
      
fscanf(in,"%d",&a[i]);
printf ("Massivi: ");
for (
i=0;i<n;i++)
    
printf ("%d ",a[i]);
printf ("\n");

    
press();

printf ("\n");
for (
i=0;i<n;i++)
    if (
a[i]>0)
        {
        
s=a[i];
        
printf ("%d ",s);
        }
    else
        {
        
o=a[i];
        
printf ("%d ",o);
        }
getch();
}
 
Вот тут я не могу определиться..как их сгруппировать..чем можно заменить? просто получается он печатает по правилу но не разбериха в том что последовательно...
PHP код:
for (i=0;i<n;i++) 
    if (
a[i]>0
        { 
        
s=a[i]; 
        
printf ("%d ",s); 
        } 
    else 
        { 
        
o=a[i]; 
        
printf ("%d ",o); 
        } 
KOSTAS72RUS вне форума Ответить с цитированием
Старый 22.12.2012, 02:50   #2
KOSTAS72RUS
 
Регистрация: 22.12.2012
Сообщений: 3
По умолчанию

числа -1 -2 3 -4 5 -6 7 8 9 1 2
KOSTAS72RUS вне форума Ответить с цитированием
Старый 22.12.2012, 03:29   #3
EUGY
Форумчанин
 
Аватар для EUGY
 
Регистрация: 11.07.2010
Сообщений: 914
По умолчанию

Цитата:
но не разбериха в том что последовательно...
В смысле? Как записано в файле?
Ну, можно ведь отсортировать.
Типа так для примера:

Код:
void shortsort(int *lo, int *hi)
{
    int tmp, *p, *max;
    while (hi > lo)
	{
        max = lo;
        for (p = lo; p <= hi; p ++)
            if (*p > *max)  max = p;
		 tmp = *max, *max = *hi,  *hi = tmp;
		 hi--;
    }
}


int main()
{

	int a[] = {-1, -2, 3, -4, 5, -6, 7, 8, 9, 1, 2};

	shortsort(a, a + 10);

	for (int i = 0; i < 10; i++)
		printf ("%d ", a [ i ] ); 
}
А вообще смотрю, как-то у Вас для массива a[] память не выделена, просто объявлен указатель int * a; Это чревато. Почитайте соседние темы, каждая вторая ошибка про это.
EUGY вне форума Ответить с цитированием
Старый 22.12.2012, 15:33   #4
KOSTAS72RUS
 
Регистрация: 22.12.2012
Сообщений: 3
По умолчанию

(Си) не разбериха...то есть он все как и хотелось бы различает где отрицательные где положительные..НО..мне надо их сгруппировать..например "++: 3 8 и тд " так же с минусом..и если можно без void...
KOSTAS72RUS вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Дан одномерный массив, сформировать новый массив по заданному правилу {Delphi} Nickolai47 Помощь студентам 5 16.12.2012 14:51
Дан массив из 9 байт расматривая его как массив 72 бит подсчитать число нулей в этом массиве. noob asm Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 6 16.04.2012 19:04
Дан массив чисел В[0:N]. Записать подряд в массив А элементы массива В, имеющие четные индексы,(язык си++) yury.zanilov Помощь студентам 9 15.03.2012 21:55