Pagini recente » Cod sursa (job #3220266) | Cod sursa (job #1100710) | Cod sursa (job #2912910) | Cod sursa (job #1081505) | Cod sursa (job #1483781)
#include<stdio.h>
int n,s[100];
int x;
int punctul_a(int li,int ls)
{
int mij;
while (li < ls)
{
mij = (li + ls) / 2;
if (s[mij] <= x)
li = mij + 1;
else
ls = mij - 1;
}
mij = (li + ls) / 2;
if (s[mij]>x)
mij--;
if (s[mij] == x)
return mij;
return -1;
}
int punctul_b(int li, int ls)
{
int mij;
while (li < ls)
{
mij = (li + ls) / 2;
if (s[mij] <= x)
li = mij + 1;
else
ls = mij - 1;
}
mij = (li + ls) / 2;
if (s[mij]>x)
mij--;
return mij;
}
int punctul_c(int li, int ls)
{
int mij;
while (li < ls)
{
mij = (li + ls) / 2;
if (s[mij] <= x)
li = mij + 1;
else
ls = mij - 1;
}
mij = (li + ls) / 2;
return mij;
}
void main()
{
printf("Dati lungimea vectorului:");
scanf("%d", &n);
printf("Dati vectorul crescator:");
int i;
for (i = 1; i <= n; i++)
{
scanf("%d", &s[i]);
}
printf("Dati valoarea cautata x:");
scanf("%d", &x);
printf("Pozitia pe care se afla valoarea cautata este: %d\n",punctul_a(1,n));
printf(" Cea mai mare pozitie pe care se afla un element cu valoarea mai mica sau egala cu x in sir este: %d\n",punctul_b(1,n));
printf(" Cea mai mica pozitie pe care se afla un element cu valoarea mai mare sau egala cu x in sir este: %d\n", punctul_c(1, n));
}