Помощь - Поиск - Пользователи - Календарь
Полная версия: Вывод первого элемента из массива по условию
Форум «Всё о Паскале» > Delphi, Assembler и другие языки. > Другие языки
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]); // <--- Видишь разницу ?
 }


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