Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Ада и другие языки _ Вывод первого элемента из массива по условию

Автор: 18192123 1.06.2007 18:59

В заданном массиве а, состоящем из 20 элементов определить и вывести на экран первый элемент, удовлетворяющий условию 0<аi<1 и его порядковый номер. Если такой элемент отсутствует выдать соответствующее сообщение.

Выводит совсем не то....
Не разберусь, в чём ошибка....


#include <STDIO.H>
#include <CONIO.H>
#define NUM 20
void main()
{
clrscr();
double a[NUM];
int i;
printf ("\nVvedite 20 4isel :\n" );
for (i = 0; i < NUM; i++)
{
printf ("%d element massiva --> ", i);
scanf ("%g", &a[i]);
}

double numb = 0;
int i_numb = 0;
int flag = 0;
for( i = 0; i < NUM ; i++)
{
if ( (a[i] > 0) && (a[i] <1) )
{
numb = a[i];
i_numb = i+1;
flag = 1;
}
if (flag) break;
}

printf ("\nIn this massiv \n");
for(i = 0; i < NUM; ++i)
printf("%g", a[i]);
if (!flag) printf ("\nElementov, ydovletvor. 0<a[i]<1 NET!!!\n");
if (flag)
{
printf("\nPervui nyshui element = %g\n", numb);
printf ("\nEgo pozichua = %d\n", i_numb);
}
}


Автор: Ozzя 1.06.2007 19:12

У тебя scanf ("%g", &a[i]);
не работает, значения не заносятся в массив. Проверь, где нкосячила.

Автор: volvo 1.06.2007 19:18

Ты неправильно читаешь элементы... Для double надо:

  for (i = 0; i < NUM; i++)
{
printf ("%d element massiva --> ", i);
scanf ("%lf", &a[i]); // <--- Видишь разницу ?
}

Автор: 18192123 1.06.2007 19:19

Цитата(volvo @ 1.06.2007 16:18) *

Ты неправильно читаешь элементы... Для double надо:

  for (i = 0; i < NUM; i++)
{
printf ("%d element massiva --> ", i);
scanf ("%lf", &a[i]); // <--- Видишь разницу ?
}


спасибо! теперь буду знать!