Skillrack PPS 2

CSE 1002 PPS2 new Winter ’16 (Id=2229)

13-Jan-2017 00:00 to  5-Feb-2017 00:00

Total time : 500 mins

Challenges : 5

Question 1 (Row Maximum of a Matrix)

Given an nXn matrix with entries as numbers, print the maximum value in each row of the matrix.

Input Format

Value of ‘n’

Element in first row first column

Element in first row second column

..

Element in the first row nth column

Element in second row first column

Element in second row second column

..

Element in the second row nth column

Element in nth row first column

Element in nth row second column

..

Element in nth row nth column

Output Format

Maximum value in the first row

Maximum value in the second row

Maimum value in the nth row

Solution

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

Input

INPUT:

n - number of rows and cloumns

Output

OUTPUT:

printf("%d\n",max);

Processing

for(i=0;i < n;i++)
    {
        max=-1;
        for(j=0;j < n;j++) 
        { 
            scanf("%d",&num); 
            if(num > max)
            max=num;
        }
    }

Pseudocode

BEGIN

Read n
for(i=0;i < n;i++)
    {
        max=-1;
        for(j=0;j < n;j++) 
        { 
            scanf("%d",&num); 
            if(num > max)
            max=num;
        }
        printf("%d\n",max);
    }

END

Question 2 (Salary of Employees)

A company stores the following details of employees such as name, employee id, basic pay, % of DA and HRA. Given details of ‘n’ employees of an organization. Write a C code to

i. get the details of each employee.

ii. print their employee id and

iii. Total salary.

Total salary = Basic Pay + % of DA * basic pay + HRA.

Input Format

value of ‘n’

Employee name of employee1

Employee id of employee1

Basic pay of employee1

Percentage of DA of employee1

HRA of employee1

Employee name of employee – n

Employee id of employee – n

Basic pay of employee – n

Percentage of DA of employee – n

HRA of employee – n

Output Format

Employee id of employee1

Total salary of employee1

Employee id of employee2

Total salary of employee2

Employee id of employee – n

Total salary of employee – n

Solution

#include< stdio.h >
void main()
{
    char name[20];
    int i,n,id,bp,da,hra;
    scanf("%d",&n);
    for(i=0;i < n;i++)
    {
        scanf("%s",name);
        scanf("%d%d%d%d",&id,&bp,&da,&hra);
        printf("%d\n%d\n",id,(bp+((bp*da)/100)+hra));
    }
}

Input

INPUT:

n - number of emloyees

Output

OUTPUT:

printf("%d\n%d\n",id,(bp+((bp*da)/100)+hra));

Processing

(bp+((bp*da)/100)+hra)

Pseudocode

BEGIN

Read n
for(i=0;i < n;i++)
    {
        scanf("%s",name);
        scanf("%d%d%d%d",&id,&bp,&da,&hra);
        printf("%d\n%d\n",id,(bp+((bp*da)/100)+hra));
    }

END

Question 3 (Verification of Circular Prime Number)

A circular prime number is a prime number ‘p’ with a property that all the numbers got by cyclically permuting the digits of ‘p’, are also a prime number.

A number is said to be a prime if it has no factors other than the number 1 and itself. 19937 is a circular prime number, as all the numbers obtained by cyclically permuting the number 19937 : 99371, 93719,37199,71993,19937 are all prime.

Develop an algorithm and write a C program to check if the given number is circular prime or not.

Input Format

A number

Output Format

Print Circular prime or Not circular prime

Solution

#include< stdio.h >
#include< string.h >
int prime(int n)
{
    int i,flag=1;
    for(i=2;i < =n/2;i++)
    if(n%i==0)
    {
        flag=0;
        break;
    }
    return(flag);
}
int nnum(char s[])
{
    int n=0,i;
    char temp=s[0];
    for(i=0;i < strlen(s);i++)
    {
        n*=10;
        n+=s[i]-'0';
        s[i]=s[i+1];
    }
    s[strlen(s)]=temp;
    return(n);
}
void main()
{
    int i,j,n,num,flag=1;
    char s[20];
    scanf("%s",s);
    n=nnum(s);
    while(num!=n)
    {
        num=nnum(s);
        if(prime(num)==0)
        {
            flag=0;
            break;
        }
    }
    if(flag==0)
    printf("Not circular prime");
    else
    printf("Circular prime");
}

Input

INPUT:

s - string containing number

Output

OUTPUT:

if(flag==0)
printf("Not circular prime");
else
printf("Circular prime");

Processing

int n=0,i;
    char temp=s[0];
    for(i=0;i < strlen(s);i++)
    {
        n*=10;
        n+=s[i]-'0';
        s[i]=s[i+1];
    }
    s[strlen(s)]=temp;
    return(n);

Pseudocode

BEGIN

Read s
n=nnum(s);
    while(num!=n)
    {
        num=nnum(s);
        if(prime(num)==0)
        {
            flag=0;
            break;
        }
    }
    if(flag==0)
    printf("Not circular prime");
    else
    printf("Circular prime");

END

Question 4 (Identify machines in same local network)

Numeric addresses for computers on the international network, ‘Internet’ has four parts, separated by periods, of the form   xxx.yyy.zzz.mmm    where  xxx ,  yyy ,  zzz , and  mmm  are positive integers. Locally, computers are usually known by a nickname as well.

Sample Data

IP address       Name

111.22.3.44        platte

555.66.7.88        wabash

111.22.5.66        green

0.0.0.0                none

A pair of computers are said to be in same locality when the first two components of the addresses are same. Given the details of some computers, design an algorithm and write a C program to display a list of messages identifying each pair of computers from the same locality. In the messages, the computers should be identified by their nicknames. In this example, the message to be displayed will be Machines platte and green are on the same local network. For example, given IP address and nick name of machines as follows:

101.33.2.1              Atlas
101.33.56.80          Horizon
101.43.45.74          Pluto

Print ‘Machines Atlas and Horizon are on the same local network’.

Input Format

Number of computers ‘n’

IP address of the computer1 as a String

Nick names of the computer1 as a String

IP address of the computer2 as a String

Nick names of the computer2 as a String

….

IP address of the computer n as a String

Nick names of the computer n as a String

Output Format

For each pair of machines in the same local network, print:

Machines A and B are on the same local network (A and B are names of the respective machines)

Solution

#include< stdio.h >
#include< string.h >
void main()
{
    int n,p,i,j;
    char s[20][20],na[10][10];
    scanf("%d",&n);
    for(i=0;i < n;i++)
    {
        scanf("%s%s",s[i],na[i]);
        p=0;
        j=0;
        while(p!=2)
        {
            j++;
            if(s[i][j]=='.')
            p++;
        }
        s[i][j]='\0';
    }
    for(i=0;i < n-1;i++)
    for(j=i+1;j < n;j++)
    if(strcmp(s[i],s[j])==0)
    printf("Machines %s and %s are on the same local network",na[i],na[j]);
}

Input

INPUT:

n - number of computers
for(i=0;i < n;i++)
scanf("%s%s",s[i],na[i]);

Output

OUTPUT:

if(strcmp(s[i],s[j])==0)
printf("Machines %s and %s are on the same local network",na[i],na[j]);

Processing

for(i=0;i < n;i++)
    {
        scanf("%s%s",s[i],na[i]);
        p=0;
        j=0;
        while(p!=2)
        {
            j++;
            if(s[i][j]=='.')
            p++;
        }
        s[i][j]='\0';
    }

Pseudocode

BEGIN

Read n
for(i=0;i < n;i++)
    {
        scanf("%s%s",s[i],na[i]);
        p=0;
        j=0;
        while(p!=2)
        {
            j++;
            if(s[i][j]=='.')
            p++;
        }
        s[i][j]='\0';
    }
    for(i=0;i < n-1;i++)
    for(j=i+1;j < n;j++)
    if(strcmp(s[i],s[j])==0)
    printf("Machines %s and %s are on the same local network",na[i],na[j]);

END

Question 5 (Verification of ‘L’ shaped arrangement of coins on game board)

Consider an nxn board game with four types of coins red, green, blue and yellow. Given the state of the board with coins in all cells, develop an algorithm and write a C program to check if the same coins are placed in  the shape of ‘L’  on the board. The number of cells in the vertical and horizontal line of ‘L’ shape, is same. Red coins are represented by ‘r’, blue coins are represented by ‘b’, green coins are represented by ‘g’ and yellow coins are represented by ‘y’.

For example, given the configuration of a 4 X 4 board with coins as shown below, the program must print ‘Yes’ since the coin ‘r’ is placed in the positions (3,2), (4,2),(4,3),(4,4) form an ‘L’ shape.

b r y r

r r y b

y r b b

b r r r

Input Format

Number of rows

Number of columns

Elements in the matrix(board), given row by row

Output Format

Print Yes or No

Solution

#include< stdio.h >
void main()
{
    char m[10][10];
    int r,c,i,j,f=0;
    scanf("%d%d",&r,&c);
    for(i=0;i < r;i++)
    for(j=0;j < c;j++) 
    { 
        m[i][j]=getchar(); 
        while(!((m[i][j] > ='a')&&(m[i][j] < ='z'))) 
        m[i][j]=getchar(); 
    } 
    if(r > 2 && c > 2)
    {
        for(i=0;i < r-1;i++)
        for(j=0;j < c-2;j++)
        {
            if((m[i][j]==m[i+1][j])&&(m[i][j]==m[i+1][j+1])&&(m[i][j]==m[i+1][j+2]))
            {
                f=1;
                printf("Yes");
                break;
            }
        }
        if(f==0)
        printf("No");
    }
    else
    printf("No");
}

Input

INPUT:

for(i=0;i < r;i++)
    for(j=0;j < c;j++) 
    { 
        m[i][j]=getchar(); 
        while(!((m[i][j] > ='a')&&(m[i][j] < ='z')))
        m[i][j]=getchar();
    }

Output

OUTPUT:

if(f==1)
printf("Yes");
else
printf("No");

Processing

for(i=0;i < r-1;i++)
for(j=0;j < c-2;j++)
if((m[i][j]==m[i+1][j])&&(m[i][j]==m[i+1][j+1])&&(m[i][j]==m[i+1][j+2]))

Pseudocode

BEGIN

Read matrix
for(i=0;i < r-1;i++)
for(j=0;j < c-2;j++)
if((m[i][j]==m[i+1][j])&&(m[i][j]==m[i+1][j+1])&&(m[i][j]==m[i+1][j+2]))
flag=1;
if(flag==1)
printf("Yes");
else
printf("No");

END
Advertisements

2 thoughts on “Skillrack PPS 2

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