
Листинг программы
#include <stdio.h>
main()
{
int i,t1,t2,n,max;
puts("Введите число элементов массива А");
scanf ("%d", &n);
int*A=new int[n]; //выделение памяти под массив
for(i=0;i<n;i++) //ввод массива
{
printf("a[%2d]=",i);
scanf("%d",&A[i]);
}
puts("Массив A:");
for(i=0;i<n;i++) //вывод массива
printf("a[%d]=%d\n",i,A[i]);
i=0;
while(i<n && A[i]!=0) i=i+1; //поиск позиции первого нуля
if(i>=n)
printf("В массиве нет нулей \n");
else
{
t1=i;
i=n-1;
while(i>=t1 && A[i]!=0) i=i-1; //поиск позиции последнего нуля
t2=i;
if(t1==t2 || t1==t2-1)
printf("В массиве только один ноль или они располагаются друг за другом\n");
else
{
max=A[t1+1];
for(i=t1+1;i<t2;i++)
if(A[i]>max) max=A[i]; //поиск максимального элемента
printf("t1=%d t2=%d max=%d \n",t1,t2,max);
}
}
delete[] A; // освобождение динамической памяти
}
Тесты
| 1)
Массив A:
a[0]=1
a[1]=3
a[2]=0
a[3]=x6
a[4]=-3
a[5]=7
a[6]=4
a[7]=0
a[8]=1
t1=2 t2=7 max=7
| 2)
Массив A:
a[0]=0
a[1]=1
a[2]=-2
a[3]=4
a[4]=0
t1=0 t2=4 max=4
| 3)
Массив A:
a[0]=1
a[1]=2
a[2]=0
a[3]=5
a[4]=0
a[5]=3
a[6]=8
a[7]=0
a[8]=3
a[9]=1
t1=2 t2=7 max=8
|
| 4)
Массив A:
a[0]=1
a[1]=2
a[2]=3
a[3]=4
В массиве нет нулей
| 5)
Массив A:
a[0]=1
a[1]=0
a[2]=2
a[3]=3
a[4]=4
В массиве только один ноль или они располагаются друг за другом
t1=1 t2=1 max=0
| 6)
Массив A:
a[0]=1
a[1]=2
a[2]=0
a[3]=0
a[4]=5
a[5]=2
В массиве только один ноль или они располагаются друг за другом
|