Главная » Дан целочисленный массив...номер третьего....
21:56

Дан целочисленный массив...номер третьего....


Задание:

Дан целочисленный массив из 30 элементов. Элементы массива могут принимать произвольные целые значения. Опишите на русском языке или на одном из языков программирования алгоритм, который находит и выводит номер третьего положительного элемента массива (если из массива вычеркнуть все неположительные элементы, этот элемент стоял бы в получившемся массиве на третьем месте). Если в массиве меньше, чем три положительных элемента, вывести сообщение об этом. Исходные данные объявлены так, как показано ниже. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать часть из них.

Паскаль

Естественный язык

  1. const N=30;
  2. var a: array [1..N] of integer;
  3.     i, j, k: integer;
  4.  
  5.   for i:=1 to N do readln(a[i]);
  6.   ...
  7. end.

 

Объявляем массив A из 30 элементов. Объявляем целочисленные переменные i, j, k. В цикле от 1 до 30 вводим элементы массива A с 1-го по 30-й.

...

Си

 

  1. #include<stdio.h>
  2. int main(void) {
  3.     const int N=30;
  4.     int a[N];
  5.     int i, k, j;
  6.     for (i=0; i<N; i++)
  7.        scanf(″%d″, &a[i]);
  8.   ...
  9.  }

 

Решение:

Очевидно, что нужно считать найденные положительные элементы (например, с помощью переменной k) и, когда k станет равно 3, запомнить номер текущего элемента (в переменной j).

Решение на естественном языке. Записываем в переменную k начальное значение 0. Затем в цикле перебираем все элементы массива с 1-ого по 30-ый. Если очередной элемент больше нуля, увеличиваем счетчик k. Если k=3, записываем номер текущего элемента в переменную j. Если после окончания цикла k<3, выводим сообщение, что в массиве меньше трех положительных элементов, иначе выводим значение переменной j.

Решение на Паскале.

  1. const N=30;
  2. var a: array [1..N] of integer;
  3.     i, j, k: integer;
  4. begin
  5.   for i:=1 to N do readln(a[i]);
  6.   k:=0;
  7.   for i:=1 to N do
  8.     if a[i] > 0 then begin
  9.       k:=k+1;
  10.       if k = 3 then j := i;
  11.     end;
  12.   if k < 3 then 
  13.        writeln('Меньше трех положительных элементов')
  14.   else writeln(j);
  15. end.

Похожие материалы:
Нашли ошибку на сайте? Напишите в комментариях!
Категория: Язык программирования: Паскаль | Просмотров: 58 | Добавил: Ученик | Рейтинг: 5.0/1