# Problem Solving Through Programming In C Week12 Assignment July 2023

NPTEL Problem Solving Through Programming In C Week12 All Programming Assignment Solutions | Swayam July 2023. With the growth of Information and Communication Technology, there is a need to develop large and complex software.

This course is aimed at enabling the students to:
• Formulate simple algorithms for arithmetic and logical problems
• Translate the algorithms to programs (in C language)
• Test and execute the programs and  correct syntax and logical errors
• Implement conditional branching, iteration and recursion
• Decompose a problem into functions and synthesize a complete program using divide and conquer approach
• Use arrays, pointers and structures to formulate algorithms and programs
• Apply programming to solve matrix addition and multiplication problems and searching and sorting problems
• Apply programming to solve simple numerical method problems, namely rot finding of function, differentiation of function and simple integration
##### COURSE LAYOUT
• Week 1 : Introduction to Problem Solving through programs, Flowcharts/Pseudo codes, the compilation process, Syntax and Semantic errors, Variables and Data Types
• Week 2 : Arithmetic expressions, Relational Operations, Logical expressions; Introduction to Conditional Branching
• Week 3 : Conditional Branching and Iterative Loops
• Week 4 : Arranging things : Arrays
• Week 5 : 2-D arrays, Character Arrays and Strings
• Week 6 : Basic Algorithms including Numerical Algorithms
• Week 7 : Functions and Parameter Passing by Value
• Week 8 : Passing Arrays to Functions, Call by Reference
• Week 9 : Recursion
• Week 10 : Structures and Pointers
• Week 11 : Self-Referential Structures and Introduction to Lists
• Week 12 : Advanced Topics

Once again, thanks for your interest in our online courses and certification. Happy learning!

### Problem Solving through Programming In C July 2023

Question : 1 Write a program in C to find the factorial of a given number using pointers.

#include <stdio.h>
void findFact(int, long int*);
int main()
{
long int fact; //factorial of the number
int num1;
scanf("%d",&num1);
//The number is taken from test data

findFact(num1, &fact);
printf("The Factorial of %d is : %ld\n",num1, fact);
return 0;
}

void findFact(int n, long int *f)
{
int i;
*f =1;
for(i=1;i<=n;i++)
*f=*f*i;
}

### Problem Solving through Programming In C July 2023

Question : 2 Write a C program to print the Record of the Student Merit wise. Here a structure variable is defined which contains student rollno, name and score.

#include<stdio.h>
struct student
{
int rollno;
char name[20];
int score;
};
void main()
{
struct student s[20];
int i, n;

scanf("%d" ,&n); //No. of Students taken from test data
// Roll no., Name and Score of n students are taken from test data
for(i=0;i<n;i++)
{
scanf("%d", &s[i].rollno);
scanf("%s", s[i].name);
scanf("%d", &s[i].score);
}

struct student temp;
int j;
for(i=0;i<n-1;i++)
{
for(j=0;j<n-1;j++)
{
if(s[j].score<s[j+1].score)
{
temp=s[j];
s[j]=s[j+1];
s[j+1]=temp;
}
}
}

printf("The Merit List is :\n");
for(i=0;i<n;i++)
{
printf("%d", s[i].rollno);
printf("  %s", s[i].name);
printf("  %d\n", s[i].score);
}
}

### Problem Solving through Programming In C July 2023

Question : 3 Write a C program to store n elements using Dynamic Memory Allocationcalloc() and find the Largest element.

#include <stdio.h>
#include <stdlib.h>

int main()
{
int n;
float *element;
scanf("%d", &n);

element = (float*) calloc(n, sizeof(float));
if(element == NULL)
{
printf("Error!!! memory not allocated.");
exit(0);
}
// Stores the number entered by the user.
int i;
for(i = 0; i < n; ++i)
{
scanf("%f", element + i);
}
// find the largest
for(i = 1; i < n; ++i)
{
if(*element < *(element + i))
*element = *(element + i);
}
printf("Largest element = %.2f", *element);
return 0;
}

### Problem Solving through Programming In C July 2023

Question : 4 Write a C program to find the sum of two 1D integer arrays ‘A’  and ‘B’ of same size and store the result in another array ‘C’, where the size of the array and the elements of the array are taken as input.

#include<stdio.h>
#include<stdlib.h>

void main()
{
int i,n;
scanf("%d", &n);

int *a,*b,*c;
a = (int *) malloc(n*sizeof(int));
b = (int *) malloc(n*sizeof(int));
c = (int *) malloc(n*sizeof(int));

// Input Elements of First List;
for(i=0;i<n;i++)
{
scanf("%d",a+i);
}

//Input Elements of Second List;
for(i=0;i<n;i++)
{
scanf("%d",b+i);
}

for(i=0;i<n;i++)
{
*(c+i) = *(a+i) + *(b+i);
}

printf("Result is\n");
for(i=0; i<n; i++)
{
printf("%d\n",*(c+i));
}

}