Smallest alphabet greater than given character

Question
Given a sorted array of characters, find an alphabet which is greater than the given character. Get the input from the user. Output must be as follows,
Logic
- Get the input from the user and convert that to ASCII value.
- If the Last character is Smaller(in terms of ASCII value) than given then print “not found”.
- Check each character with the given character. If a larger item is found print and break the loop.
Program
[code lang=”c”]
#include<stdio.h>
void main()
{
char c;
int i,num,n1,count=0;
printf("enter a character");
scanf("%c",&c);
char arr[] ={‘a’,’d’,’e’,’j’,’k’,’z’}; //sorted array
printf("Smallest alphabet greater than %c is",c);
for(i=0;i<100;i++)
{
if(arr[i]==’\0’)
break;
count++; //count of character array
}
n1 =c; // ASCII value of given input
num= arr[count-1]; //ASCII Conversion (EX: ‘a’ to 97 )
if(n1>num) //whether last charater is smaller than given
{
printf (" not found");
}
else
{
for(i=0;i<count;i++)
{
num= arr[i];
if(n1 == num) //found same character
{
printf("%c",arr[i+1]); //print next index character
break;
}
if(n1>num) //if smaller increment index
continue;
if(n1<num)
{
printf("%c",arr[i]);
break; //very important
}
}
}
}
[/code]
Analysis
worst case – O(n) because we may end up checking till the last character.
best case – O(1) because at the first comparison itself we can find whether the last item is smaller the given character.