Помощь - Поиск - Пользователи - Календарь
Полная версия: Вывод первого элемента из массива по условию
Форум «Всё о Паскале» > Современный Паскаль и другие языки > Ада и другие языки
18192123
В заданном массиве а, состоящем из 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я
У тебя scanf ("%g", &a[i]);
не работает, значения не заносятся в массив. Проверь, где нкосячила.
volvo
Ты неправильно читаешь элементы... Для double надо:

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

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

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


спасибо! теперь буду знать!
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.