# Introduction to programming in C Week 2

Course Name: Introduction to programming in C

Question 1

#### You are given a non-negative sequence of numbers, ending with a -1. You can assume that there are at least two numbers before the ending -1.You have to output the second largest element of the sequence.If there is no second largest element in the sequence then output 0.Note : -1 is not a part of input. It only signifies that input has ended.

Solution:

``````#include <stdio.h>

int second_largest(int n, int numbers[n])
{
int largest = numbers;
for (int i = 1; i < n; i++){
if (numbers[i] > largest){
largest = numbers[i];
}
}

int second_largest = 0;
for (int i = 0; i < n; i++) {
if (numbers[i] < largest && numbers[i] > second_largest) {
second_largest = numbers[i];
}
}

return second_largest;
}

int main() {
int numbers;
int n = 0;

while (1) {
int number;
scanf("%d", &number);
if (number == -1) {
break;
}
numbers[n++] = number;
}

int result = second_largest(n, numbers);
printf("%d", result);

return 0;
}``````

These are Introduction to programming in C Assignment 2 Answers

Question 2

You are given a non decreasing sorted sequence of non negative integers, ending with -1.
That is if the sequence is a1,a2,…,an,−1 then ai≤ai+1 for all i from 1 to n-1.
You can assume that are at least two numbers before the ending -1.
You have to output the number of distinct elements in the sorted sequence.

Solution:

``````#include <stdio.h>

int main(){
int num, m, n, counter=0;
scanf("%d",&num);
while(num!=-1){
m=num;
scanf("%d",&num);
n=num;
if((m!=n) && (num!=-1))
counter++;
}
if(counter>=0)
printf("%d",counter+1);
else
printf("0");
return 0;
}``````

These are Introduction to programming in C Assignment 2 Answers

Question 3

In this assignment, you will be given an N×N matrix, with N>1
You have to determine whether the matrix is an upper triangular matrix.
A matrix is upper triangular if every entry below the diagonal is 0. The following is an example of an upper triangular matrix:
Note: The diagonal itself, and the entries above the diagonal can be zeroes or non-zero integers.
Input
First, you will be given N, which is the size of the matrix.
Then you will be given N rows of integers, where each row consists of N integers separated by spaces.
Output
If the input matrix is upper triangular, then print 1. Otherwise, print 0.

Solution:

``````#include <stdio.h>

int main(){
int n,i,j,a,up=0,lp=0;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
{
scanf("%d",&a);
if(i>j)
{
if(a!=0)
up=1;
}
else if(i<j)
{
if(a!=0)
lp=1;
}
}
}
if(up==0|lp==0)
printf("1");
else
printf("0");
return 0;
}``````

These are Introduction to programming in C Assignment 2 Answers