Skillrack PPS 1

CSE 1002 PPS1 new Winter ’16 (Id=2228)

13-Jan-2017 00:00 to  29-Jan-2017 00:00

Total time : 500 mins

Challenges : 5

Question 1 (Second Smallest Number)

Given a set of elements, design an Algorithm and write the subsequent C program to determine the second smallest number in that set.

Input Format

Number of elements in ‘n’

element-1

element-2

element-n

Output Format

Second smallest element in the set

Solution

#include< stdio.h >
void main()
{
    int n,i,num,small=999,sec=999;
    scanf("%d",&n);
    for(i=0;i < n;i++)
    {
        scanf("%d",&num);
        if(num < =small)
        {
            sec=small;
            small=num;
        }
        else if(num < =sec)
        sec=num;
    }
    printf("%d",sec);
}

Input

INPUT:

n - number of elements

Output

OUTPUT:

printf("%d",sec);

Processing

for(i=0;i < n;i++)
    {
        scanf("%d",&num);
        if(num < =small)
        {
            sec=small;
            small=num;
        }
        else if(num < =sec)
        sec=num;
    }

Pseudocode

BEGIN

Read n
for(i=0;i < n;i++)
    {
        scanf("%d",&num);
        if(num < =small)
        {
            sec=small;
            small=num;
        }
        else if(num < =sec)
        sec=num;
    }
printf("%d",sec);

END

Question 2 (Recursive Fibonacci)

Given the value of ‘n’, write a recursive routine in C to print the first ‘n’ elements of the Fibonacci series.

Input Format

Value of ‘n’

Output Format

Fibonacci series of ‘n’ terms, each term separated by a space

Solution

#include< stdio.h >
void main()
{
    int i,n,f=0,sum=0,num=1;
    scanf("%d",&n);
    printf("0 1");
    for(i=0;i < n-2;i++)
    {
        sum=f+num;
        f=num;
        num=sum;
        printf(" %d",sum);
    }
}

Input

INPUT:

n - number of terms

Output

OUTPUT:

printf("0 1");
printf(" %d",sum);

Processing

for(i=0;i < n-2;i++)
    {
        sum=f+num;
        f=num;
        num=sum;
    }

Pseudocode

BEGIN

Read n
printf("0 1");
for(i=0;i < n-2;i++)
    {
        sum=f+num;
        f=num;
        num=sum;
        printf(" %d",sum);
    }

END

Question 3 (Cyclic Right shift of Elements)

Given a set of elements stored in an array and a number ‘m’, design an Algorithm and write the subsequent C program to perform cyclic right shift of the array by ‘m’ places. For example, if the elements are 12, 13, 16, 7, 10 and m =2 then the resultant set will be 7, 10, 12, 13, 16.

Input Format

Number of elements in the set: ‘n’

element-1

element-2

element-n

value of ‘m’

Output Format

Elements in the set after right shift by ‘m’ places

Solution

#include< stdio.h >
void main()
{
    int a[20],n,i,m,t,j;
    scanf("%d",&n);
    for(i=0;i < n;i++)
    scanf("%d",&a[i]);
    scanf("%d",&m);
    for(j=0;j < m;j++) 
    { 
        t=a[n-1];  
        for(i=n-1;i > 0;i--)
        a[i]=a[i-1];
        a[0]=t;
    }
    for(i=0;i < n;i++)
    printf("%d\n",a[i]);
}

Input

INPUT:

n - number of terms
for(i=0;i < n;i++)
scanf("%d",&a[i]);
m - number of shifts

Output

OUTPUT:

for(i=0;i < n;i++)
printf("%d\n",a[i]);

Processing

for(j=0;j < m;j++)  
{       t=a[n-1];  
        for(i=n-1;i > 0;i--)
        a[i]=a[i-1];
        a[0]=t;
}

Pseudocode

BEGIN

Read n, array and m
for(j=0;j < m;j++)
{       t=a[n-1];  
        for(i=n-1;i > 0;i--)
        a[i]=a[i-1];
        a[0]=t;
}
for(i=0;i < n;i++)
    printf("%d\n",a[i]);

END

Qestion 4 (Leaders of Elements)

Given a set of ‘n’ elements in an order, identify all the leaders and print them. An element is said to be a leader if all the elements to its right are smaller than it. For example, if the elements are 12, 13, 16, 7, 10 then there is only one leader element 16. If there are no leaders in the given set of elements then print ‘No leaders’.

Input Format

Number of elements in the given set: ‘n’

element-1

element-2

element-n

Output Format

Elements that are leaders. Else, print ‘No leaders’ when there is no leader.

Solution

#include< stdio.h >
void main()
{
    int a[20],f=1,flag=0,i,j,n;
    scanf("%d",&n);
    for(i=0;i < n;i++)
    scanf("%d",&a[i]);
    for(i=0;i < n-1;i++)
    {
        for(j=i+1;j < n;j++) 
        if(a[i] > a[j])
        f=1;
        else
        {
            f=0;
            break;
        }
        if(f==1)
        {
            printf("%d\n",a[i]);
            flag=1;
        }
        f=0;
    }
    if(flag==0)
    printf("No leaders");
}

Input

INPUT:

n - number of elements
for(i=0;i < n;i++)
scanf("%d",&a[i]);

Output

OUTPUT:
if(f==1)
printf("%d\n",a[i]);
if(flag==0)
printf("No leaders");

Processing

for(i=0;i < n-1;i++)
    {
        for(j=i+1;j < n;j++) 
        if(a[i] > a[j])
        f=1;
        else
        {
            f=0;
            break;
        }
        if(f==1)
        flag=1;
        f=0;
    }

Pseudocode

BEGIN

Read n
for(i=0;i < n-1;i++)
    {
        for(j=i+1;j < n;j++) 
        if(a[i] > a[j])
        f=1;
        else
        {
            f=0;
            break;
        }
        if(f==1)
        {
            printf("%d\n",a[i]);
            flag=1;
        }
        f=0;
    }

END

Question 5 (Recursive reverse)

Given a string, write a recursive routine to reverse it. For example, given the string ‘and, the reversal of the string is ‘dna’.

Input Format

A string

Output Format

Reverse of the string

Solution

#include< stdio.h >
#include< string.h >
void main()
{
    char s[20],ch;
    int i,len;
    scanf("%s",s);
    len=strlen(s);
    for(i=0;i < (len/2);i++)
    {
        ch=s[i];
        s[i]=s[len-1-i];
        s[len-1-i]=ch;
    }
    puts(s);
}

Input

INPUT:

s - string

Output

OUTPUT:

puts(s);

Processing

for(i=0;i < (len/2);i++)
    {
        ch=s[i];
        s[i]=s[len-1-i];
        s[len-1-i]=ch;
    }

Pseudocode

BEGIN

Read s
for(i=0;i < (len/2);i++)
    {
        ch=s[i];
        s[i]=s[len-1-i];
        s[len-1-i]=ch;
    }
puts(s);

END
Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s