*последоваетльность*

  • Автор темы Deymonn
  • Дата начала
D

Deymonn

#1
Здравствуйте, задача моя такова: Ввод последовательности 4-х байтовых эелементов. Количество элементов задать с клавиатуры. Написать прогу, определяющую число элементов последовательности по модулю превосходящих некоторое заданное с клавы число. Распечатать это число, выбранные елементы последовательности и их количество.
Но моему преводавателю не понравилось, что я это сделал через массив, мне нужна ваша помощь в вопросе: а как можно по другому ? Не знаю честно 8(
C++:
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
int main()
{
int *a;
int kol_el,P,T=0;
printf("\n Vvedite chislo P= ");
scanf("%d", &P);	
do 
{  printf("\n Vvedite kol_el:\n");
scanf("%d", &kol_el);					 
} while (kol_el<1);
a = new int[kol_el]; 
printf("\n Vvedite %d el-v pos-ti:\n ",kol_el);
for (int i = 0; i<kol_el; i++)
{  printf("\n %d el-t pos-ti= ",i);
scanf("%d", &a[i]);
}printf("\n***************Elements bol-e po moduly*****************\n");
for ( i = 0; i<kol_el; i++)
{ 
if (labs(a[i]) > P)
{
printf("%d\t", a[i]);
}
if (labs(a[i]) > P)
{
T++;
}
}
delete []a;								  
printf("\n Kol-vo el-v bol-x po moduly= %u", T);
getch();
return 0;
}
 
R

rrrFer

#2
отформатируй код нормально
if (labs(a) > P)
{
printf("%d\t", a);
}
if (labs(a) > P)
{
T++;
}

2 раза повторяешь одно и тоже условие, зачем?

циклы можно объединить, если бы выводить элементы не требовалось - то от массива можно было бы отказаться.

а как можно по другому ?
незнаю о чем думает препод, но МБ он предлагает экономить память и использовать список для хранения только тех элементов, которые потом будем выводить, но у меня сомнения, лучше уточнить у него.
 
W

Whatka

#3
можно без массва
организовать проверку числам в том же цикле,где и ввод
числа необходимые вывести записывать в строку(например)
 
W

Whatka

#5
массив)но он по размер меньше будет)

здесь куча вариантов есть,зависит от преподователя
что он хотел сказать фразой "не через массив")