C Programming Language Tutorial
C Programming Language Tutorial
C language Tutorial with programming approach for beginners and professionals, helps you
to understand the C language tutorial easily. Our C tutorial explains each topic with
programs.
The C Language is developed for creating system applications that direct interacts to the
hardware devices such as drivers, kernals etc.
C programming is considered as the base for other programming languages, that is why it is
known as mother language.
1. Mother language
1) C as a mother language
C language is considered as the mother language of all the modern languages
because most of the compilers, JVMs, Kernals etc. are written in C language and
most of languages follows c syntax e.g. C++, Java etc.
It provides the core concepts like array, functions, file handling etc. that is being used in
many languages like C++, java, C# etc.
3) C as a procedural language
A procedure is known as function, method, routine, subroutine etc. A procedural
language specifies a series of steps or procedures for the program to solve the
problem.
A procedural language breaks the program into functions, data structures etc.
In C language, we break the program into parts using functions. It makes the program
easier to understand and modify.
Low level language is specific to one machine i.e. machine dependent. It is machine
dependent, fast to run. But it is not easy to understand.
High Level language is not specific to one machine i.e. machine independent. It is easy to
understand.
History of C Language
History of C language is interesting to know. Here we are going to discuss brief history of
c language.
It was developed to overcome the problems of previous languages such as B, BCPL etc.
Let's see the programming languages that were developed before C language.
C is the widely used language. It provides a lot of features that are given below.
1. Simple
5. Rich Library
6. Memory Management
7. Fast Speed
8. Pointers
9. Recursion
10. Extensible
1) Simple
C is a simple language in the sense that it provides structured approach (to break the
problem into parts), rich set of library functions, data types etc.
5) Rich Library
C provides a lot of inbuilt functions that makes the development fast.
6) Memory Management
It supports the feature of dynamic memory allocation. In C language, we can free the
allocated memory at any time by calling the free() function.
7) Speed
The compilation and execution time of C language is fast.
8) Pointer
C provides the feature of pointers. We can directly interact with the memory by using the
pointers. We can use pointers for memory, structures, functions, array etc.
9) Recursion
In c, we can call the function within the function. It provides code reusability for every
function.
10) Extensible
C language is extensible because it can easily adopt new features.
How to install C
There are many compilers available for c and c++. You need to download any one. Here, we
are going to use Turbo C++. It will work for both C and C++. To install the Turbo C
software, you need to follow following steps.
2. Create turboc directory inside c drive and extract the tc3.zip inside c:\turboc
4. Click on the tc application file located inside c:\TC\BIN to write the c program
1) Download Turbo C++ software
You can download turbo c++ from many sites. download Turbo c++
Press enter, it will look inside the c:\turboc directory for the required files.
Select Start installation by the down arrow key then press enter.
Now C is installed, press enter to read documentation or close the
software.
To write the first c program, open the C console and write the following code:
1. #include <stdio.h>
2. #include <conio.h>
3. void main(){
4. printf("Hello C Language");
5.
6. getch();
7. }
#include <stdio.h> includes the standard input output library functions. The printf()
function is defined in stdio.h .
#include <conio.h> includes the console input output library functions. The getch()
function is defined in conio.h file.
void main() The main() function is the entry point of every program in c language.
The void keyword specifies that it returns no value.
By menu
Now click on the compile menu then compile sub menu to compile the c program.
Then click on the run menu then run sub menu to run the c program.
By shortcut
Or, press ctrl+f9 keys compile and run the program directly.
1. #include <stdio.h>
2. #include <conio.h>
3. void main(){
4. clrscr();
5. printf("Hello C Language");
6.
7. getch();
8. }
Flow of C Program
The C program follows many steps in execution. To understand the flow of C program well,
let us see a simple program first.
File: simple.c
1. #include <stdio.h>
2. void main(){
3. printf("Hello C Language");
4. }
Let's try to understand the flow of above program by the figure given below.
The printf() and scanf() functions are used for input and output in C language. Both
functions are inbuilt library functions, defined in stdio.h (header file).
printf() function
The printf() function is used for output. It prints the given statement to the console.
1. printf("format string",argument_list);
The format string can be %d (integer), %c (character), %s (string), %f (float) etc.
scanf() function
The scanf() function is used for input. It reads the input data from the console.
1. scanf("format string",argument_list);
1. #include<stdio.h>
2. #include<conio.h>
3. void main(){
4. int number;
5. clrscr();
6.
7. printf("enter a number:");
8. scanf("%d",&number);
9.
10. printf("cube of number is:%d ",number*number*number);
11.
12. getch();
13. }
Output
enter a number:5
cube of number is:125
The scanf("%d",&number) statement reads integer number from the console and stores
the given value in number variable.
The printf("cube of number is:%d ",number*number*number) statement prints the
cube of number on the console.
1. #include<stdio.h>
2. #include<conio.h>
3. void main(){
4. int x=0,y=0,result=0;
5. clrscr();
6.
7. printf("enter first number:");
8. scanf("%d",&x);
9. printf("enter second number:");
10. scanf("%d",&y);
11.
12. result=x+y;
13. printf("sum of 2 numbers:%d ",result);
14.
15. getch();
16. }
Output
enter first number:9
enter second number:9
sum of 2 numbers:18
Variables in C
A variable is a name of memory location. It is used to store data. Its value can be changed
and it can be reused many times.
It is a way to represent memory location through symbol so that it can be easily identified.
1. type variable_list;
The example of declaring variable is given below:
1. int a;
2. float b;
3. char c;
Here, a, b, c are variables and int,float,char are data types.
We can also provide values while declaring the variables as given below:
o A variable name can start with alphabet and underscore only. It can't start with digit.
o A variable name must not be any reserved word or keyword e.g. int, float etc.
1. int a;
2. int _ab;
3. int a30;
Inalid variable names:
1. int 2;
2. int a b;
3. int long;
Types of Variables in C
There are many types of variables in c:
1. local variable
2. global variable
3. static variable
4. automatic variable
5. external variable
Local Variable
A variable that is declared inside the function or block is called local variable.
1. void function1(){
2. int x=10;//local variable
3. }
You must have to initialize the local variable before it is used.
Global Variable
A variable that is declared outside the function or block is called global variable. Any
function can change the value of the global variable. It is available to all the functions.
Static Variable
A variable that is declared with static keyword is called static variable.
1. void function1(){
2. int x=10;//local variable
3. static int y=10;//static variable
4. x=x+1;
5. y=y+1;
6. printf("%d,%d",x,y);
7. }
If you call this function many times, local variable will print the same value for each
function call e.g, 11,11,11 and so on. But static variable will print the incremented
value in each function call e.g. 11, 12, 13 and so on.
Automatic Variable
All variables in C that is declared inside the block, are automatic variables by default. By we
can explicitly declare automatic variable using auto keyword.
1. void main(){
2. int x=10;//local variable (also automatic)
3. auto int y=20;//automatic variable
4. }
External Variable
We can share a variable in multiple C source files by using external variable. To declare a
external variable, you need to use extern keyword.
myfile.h
1. #include "myfile.h"
2. #include <stdio.h>
3. void printValue(){
4. printf("Global variable: %d", global_variable);
5. }
Data Types in C
A data type specifies the type of data that a variable can store such as integer, floating,
character etc.
There are 4 types of data types in C language.
The memory size of basic data types may change according to 32 or 64 bit operating
system.
Let's see the basic data types. Its size is given according to 32 bit architecture.
float 4 byte
double 8 byte
Keywords in C
A keyword is a reserved word. You cannot use it as a variable name, constant name etc.
There are only 32 reserved words (keywords) in C language.
C Operators
An operator is simply a symbol that is used to perform operations. There can be many types
of operations like arithmetic, logical, bitwise etc.
o Arithmetic Operators
o Relational Operators
o Shift Operators
o Logical Operators
o Bitwise Operators
o Assignment Operator
o Misc Operator
Precedence of Operators in C
The precedence of operator species that which operator will be evaluated first and next. The
associativity specifies the operators direction to be evaluated, it may be left to right or right
to left.
Let's understand the precedence by the example given below:
1. int value=10+20*10;
The value variable will contain 210 because * (multiplicative operator) is evaluated before +
(additive operator).
Postfix () [] -> . ++ - - L
Multiplicative */% L
Additive +- L
Equality == != L
Bitwise XOR ^ L
Bitwise OR | L
Logical OR || L
Conditional ?: R
Comma , L
Comments in C
Comments in C language are used to provide information about lines of code. It is widely
used for documenting code. There are 2 types of comments in C language.
1. #include <stdio.h>
2. #include <conio.h>
3. void main(){
4. clrscr();
5. //printing information
6. printf("Hello C");
7. getch();
8. }
Output:
Hello C
1. /*
2. code
3. to be commented
4. */
1. #include <stdio.h>
2. #include <conio.h>
3. void main(){
4. clrscr();
5. /*printing
6. information*/
7. printf("Hello C");
8. getch();
9. }
Output:
Hello C
Escape Sequence in C
An escape sequence in C language is a sequence of characters that doesn't represent itself
when used inside string literal or character.
\a Alarm or Beep
\b Backspace
\f Form Feed
\n New Line
\r Carriage Return
\t Tab (Horizontal)
\v Vertical Tab
\\ Backslash
\? Question Mark
Output:
You
are
learning
'c' language
"Do you know C language"
Constants in C
A constant is a value or variable that can't be changed in the program, for example: 10, 20,
'a', 3.4, "c programming" etc.
List of Constants in C
Constant Example
1. const keyword
2. #define preprocessor
1) C const keyword
The const keyword is used to define constant in C programming.
1. #include <stdio.h>
2. #include <conio.h>
3. void main(){
4. const float PI=3.14;
5. clrscr();
6. printf("The value of PI is: %f",PI);
7. getch();
8. }
Output:
If you try to change the the value of PI, it will render compile time error.
1. #include <stdio.h>
2. #include <conio.h>
3. void main(){
4. const float PI=3.14;
5. clrscr();
6. PI=4.5;
7. printf("The value of PI is: %f",PI);
8. getch();
9. }
Output:
2) C #define preprocessor
The #define preprocessor is also used to define constant. We will learn about #define
preprocessor directive later.
C if else Statement
The if statement in C language is used to perform operation on the basis of condition. By
using if-else statement, you can perform operation either condition is true or false.
o If statement
o If-else statement
o If else-if ladder
o Nested if
If Statement
The single if statement in C language is used to execute the code if condition is true. The
syntax of if statement is given below:
1. if(expression){
2. //code to be executed
3. }
Flowchart of if statement in C
1. #include<stdio.h>
2. #include<conio.h>
3. void main(){
4. int number=0;
5. clrscr();
6.
7. printf("enter a number:");
8. scanf("%d",&number);
9.
10. if(number%2==0){
11. printf("%d is even number",number);
12. }
13.
14. getch();
15. }
Output
enter a number:4
4 is even number
enter a number:5
If-else Statement
The if-else statement in C language is used to execute the code if condition is true or false.
The syntax of if-else statement is given below:
1. if(expression){
2. //code to be executed if condition is true
3. }else{
4. //code to be executed if condition is false
5. }
Flowchart of if-else statement in C
Let's see the simple example of even and odd number using if-else statement in C language.
1. #include<stdio.h>
2. #include<conio.h>
3. void main(){
4. int number=0;
5. clrscr();
6.
7. printf("enter a number:");
8. scanf("%d",&number);
9.
10. if(number%2==0){
11. printf("%d is even number",number);
12. }
13. else{
14. printf("%d is odd number",number);
15. }
16. getch();
17. }
Output
enter a number:4
4 is even number
enter a number:5
5 is odd number
1. if(condition1){
2. //code to be executed if condition1 is true
3. }else if(condition2){
4. //code to be executed if condition2 is true
5. }
6. else if(condition3){
7. //code to be executed if condition3 is true
8. }
9. ...
10. else{
11. //code to be executed if all the conditions are false
12. }
Flowchart of else-if ladder statement in C
1. #include<stdio.h>
2. #include<conio.h>
3. void main(){
4. int number=0;
5. clrscr();
6.
7. printf("enter a number:");
8. scanf("%d",&number);
9.
10. if(number==10){
11. printf("number is equals to 10");
12. }
13. else if(number==50){
14. printf("number is equal to 50");
15. }
16. else if(number==100){
17. printf("number is equal to 100");
18. }
19. else{
20. printf("number is not equal to 10, 50 or 100");
21. }
22. getch();
23. }
Output
enter a number:4
number is not equal to 10, 50 or 100
enter a number:50
number is equal to 50
C Switch Statement
The switch statement in C language is used to execute the code from multiple conditions. It
is like if else-if ladder statement.
1. switch(expression){
2. case value1:
3. //code to be executed;
4. break; //optional
5. case value2:
6. //code to be executed;
7. break; //optional
8. ......
9.
10. default:
11. code to be executed if all cases are not matched;
12. }
Rules for switch statement in C language
1) The switch expression must be of integer or character type.
3) The case value can be used only inside the switch statement.
4) The break statement in switch case is not must. It is optional. If there is no break
statement found in switch case, all the cases will be executed after matching the case value.
It is known as fall through state of C switch statement.
Let's try to understand it by the examples. We are assuming there are following variables.
1. int x,y,z;
2. char a,b;
3. float f;
Valid Switch Invalid Switch Valid Case Inva
1. #include<stdio.h>
2. #include<conio.h>
3. void main(){
4. int number=0;
5. clrscr();
6.
7. printf("enter a number:");
8. scanf("%d",&number);
9.
10. switch(number){
11. case 10:
12. printf("number is equals to 10");
13. break;
14. case 50:
15. printf("number is equal to 50");
16. break;
17. case 100:
18. printf("number is equal to 100");
19. break;
20. default:
21. printf("number is not equal to 10, 50 or 100");
22. }
23. getch();
24. }
Output
enter a number:4
number is not equal to 10, 50 or 100
enter a number:50
number is equal to 50
Let's try to understand the fall through state of switch statement by the example given
below.
1. #include<stdio.h>
2. #include<conio.h>
3. void main(){
4. int number=0;
5. clrscr();
6.
7. printf("enter a number:");
8. scanf("%d",&number);
9.
10. switch(number){
11. case 10:
12. printf("number is equals to 10\n");
13. case 50:
14. printf("number is equal to 50\n");
15. case 100:
16. printf("number is equal to 100\n");
17. default:
18. printf("number is not equal to 10, 50 or 100");
19. }
20. getch();
21. }
Output
enter a number:10
number is equals to 10
number is equals to 50
number is equals to 100
number is not equal to 10, 50 or 100
enter a number:50
number is equal to 50
number is equals to 100
number is not equal to 10, 50 or 100
C Loops
The loops in C language are used to execute a block of code or a part of the program
several times.
Advantage of loops in C
1) It saves code.
1. do while
2. while
3. for
do-while loop in C
It iterates the code until condition is false. Here, condition is given after the code. So at
least once, code is executed whether condition is true or false.
1. do{
2. //code to be executed
3. }while(condition);
Flowchart and Example of do-while loop
while loop in C
Like do while, it iterates the code until condition is false. Here, condition is given before the
code. So code may be executed 0 or more times.
1. while(condition){
2. //code to be executed
3. }
Flowchart and Example of while loop
for loop in C
Like while, it iterates the code until condition is false. Here, initialization, condition and
increment/decrement is given before the code. So code may be executed 0 or more times.
It is good if number of iteration is known by the user.
1. for(initialization;condition;incr/decr){
2. //code to be executed
3. }
do while loop in C
To execute a part of program or code several times, we can use do-while loop of C
language. The code given between the do and while block will be executed until condition is
true.
In do while loop, statement is given before the condition, so statement or code will be
executed at lease one time. In other words, we can say it is executed 1 or more times.
1. do{
2. //code to be executed
3. }while(condition);
Flowchart of do while loop
do while example
There is given the simple program of c language do while loop where we are printing the
table of 1.
1. #include <stdio.h>
2. #include <conio.h>
3. void main(){
4. int i=1;
5. clrscr();
6.
7. do{
8. printf("%d \n",i);
9. i++;
10. }while(i<=10);
11.
12. getch();
13. }
Output
1
2
3
4
5
6
7
8
9
10
Program to print table for the given number using do while loop
1. #include <stdio.h>
2. #include <conio.h>
3. void main(){
4. int i=1,number=0;
5. clrscr();
6.
7. printf("Enter a number: ");
8. scanf("%d",&number);
9.
10. do{
11. printf("%d \n",(number*i));
12. i++;
13. }while(i<=10);
14.
15. getch();
16. }
Output
Enter a number: 5
5
10
15
20
25
30
35
40
45
50
Enter a number: 10
10
20
30
40
50
60
70
80
90
100
1. do{
2. //statement
3. }while(1);
do while loop in C
To execute a part of program or code several times, we can use do-while loop of C
language. The code given between the do and while block will be executed until condition is
true.
In do while loop, statement is given before the condition, so statement or code will be
executed at lease one time. In other words, we can say it is executed 1 or more times.
1. do{
2. //code to be executed
3. }while(condition);
Flowchart of do while loop
do while example
There is given the simple program of c language do while loop where we are printing the
table of 1.
1. #include <stdio.h>
2. #include <conio.h>
3. void main(){
4. int i=1;
5. clrscr();
6.
7. do{
8. printf("%d \n",i);
9. i++;
10. }while(i<=10);
11.
12. getch();
13. }
Output
1
2
3
4
5
6
7
8
9
10
Program to print table for the given number using do while loop
1. #include <stdio.h>
2. #include <conio.h>
3. void main(){
4. int i=1,number=0;
5. clrscr();
6.
7. printf("Enter a number: ");
8. scanf("%d",&number);
9.
10. do{
11. printf("%d \n",(number*i));
12. i++;
13. }while(i<=10);
14.
15. getch();
16. }
Output
Enter a number: 5
5
10
15
20
25
30
35
40
45
50
Enter a number: 10
10
20
30
40
50
60
70
80
90
100
1. do{
2. //statement
3. }while(1);
while loop in C
The while loop in C language is used to iterate the part of program or statements many
times.
In while loop, condition is given before the statement. So it is different from the do while
loop. It can execute the statements 0 or more times.
1. while(condition){
2. //code to be executed
3. }
Flowchart of while loop in C
1. #include <stdio.h>
2. #include <conio.h>
3. void main(){
4. int i=1;
5. clrscr();
6.
7. while(i<=10){
8. printf("%d \n",i);
9. i++;
10. }
11.
12. getch();
13. }
Output
1
2
3
4
5
6
7
8
9
10
Output
Enter a number: 50
50
100
150
200
250
300
350
400
450
500
Enter a number: 100
100
200
300
400
500
600
700
800
900
1000
1. while(1){
2. //statement
3. }
for loop in C
The for loop in C language is also used to iterate the statement or a part of the program
several times, like while and do-while loop.
But, we can initialize and increment or decrement the variable also at the time of checking
the condition in for loop.
Unlike do while loop, the condition or expression in for loop is given before the statement,
so it may execute the statement 0 or more times.
1. for(initialization;condition;incr/decr){
2. //code to be executed
3. }
Flowchart of for loop in C
1. #include <stdio.h>
2. #include <conio.h>
3. void main(){
4. int i=0;
5. clrscr();
6.
7. for(i=1;i<=10;i++){
8. printf("%d \n",i);
9. }
10.
11. getch();
12. }
Output
1
2
3
4
5
6
7
8
9
10
Output
Enter a number: 2
2
4
6
8
10
12
14
16
18
20
Enter a number: 1000
1000
2000
3000
4000
5000
6000
7000
8000
9000
10000
In other words, if you place 2 semicolons in for loop, it is known as infinitive for loop.
1. for(;;){
2. printf("infinitive for loop example by javatpoint");
3. }
If you run this program, you will see above statement infinite times.
C break statement
The break statement in C language is used to break the execution of loop (while, do while
and for) and switch case.
2. With loop
Syntax:
1. jump-statement;
2. break;
The jump statement in c break syntax can be while loop, do while loop, for loop or switch
case.
Flowchart of break in c
Output
1
2
3
4
5
As you can see on console output, loop from 1 to 10 is not printed after i==5.
1. #include <stdio.h>
2. #include <conio.h>
3. void main(){
4. int i=1,j=1;//initializing a local variable
5. clrscr();
6.
7. for(i=1;i<=3;i++){
8. for(j=1;j<=3;j++){
9. printf("%d &d\n",i,j);
10. if(i==2 && j==2){
11. break;//will break loop of j only
12. }
13. }
14. }//end of for loop
15.
16. getch();
17. }
Output
1 1
1 2
1 3
2 1
2 2
3 1
3 2
3 3
As you can see the output on console, 2 3 is not printed because there is break statement
after printing i==2 and j==2. But 3 1, 3 2 and 3 3 is printed because break statement
works for inner loop only.
C continue statement
The continue statement in C language is used to continue the execution of loop (while, do
while and for). It is used with if condition within the loop.
Syntax:
1. jump-statement;
2. continue;
The jump statement can be while, do while and for loop.
1. #include <stdio.h>
2. #include <conio.h>
3. void main(){
4. int i=1,j=1;//initializing a local variable
5. clrscr();
6.
7. for(i=1;i<=3;i++){
8. for(j=1;j<=3;j++){
9. if(i==2 && j==2){
10. continue;//will continue loop of j only
11. }
12. printf("%d &d\n",i,j);
13. }
14. }//end of for loop
15.
16. getch();
17. }
Output
1 1
1 2
1 3
2 1
2 3
3 1
3 2
3 3
As you can see, 2 2 is not printed on the console because inner loop is continued at i==2
and j==2.
C goto statement
The goto statement is known as jump statement in C language. It is used to unconditionally
jump to other label. It transfers control to other parts of the program.
It is rarely used today because it makes program less readable and complex.
Syntax:
1. goto label;
goto example
Let's see a simple example to use goto statement in C language.
1. #include <stdio.h>
2. #include <conio.h>
3. void main() {
4. int age;
5. clrscr();
6. ineligible:
7. printf("You are not eligible to vote!\n");
8.
9. printf("Enter you age:\n");
10. scanf("%d", &age);
11. if(age<18)
12. goto ineligible;
13. else
14. printf("You are eligible to vote!\n");
15.
16. getch();
17. }
Output:
Type Casting in C
Type casting allows us to convert one data type into other. In C language, we use cast
operator for type casting which is denoted by (type).
Syntax:
1. (type)value;
Note: It is always recommended to convert lower value to higher for avoiding data loss.
1. int f= 9/4;
2. printf("f : %d\n", f );//Output: 2
With Type Casting:
1. #include <stdio.h>
2. #include <conio.h>
3. void main(){
4. clrscr();
5.
6. float f= (float)9/4;
7. printf("f : %f\n", f );
8.
9. getch();
10. }
Output:
f : 2.250000
functions in C
The function in C language is also known as procedure or subroutine in other
programming languages.
To perform any task, we can create function. A function can be called many times. It
provides modularity and code reusability.
Advantage of functions in C
There are many advantages of functions.
1) Code Reusability
By creating functions in C, you can call it many times. So we don't need to write the same
code again and again.
2) Code optimization
It makes the code optimized, we don't need to write much code.
Suppose, you have to check 3 numbers (781, 883 and 531) whether it is prime number or
not. Without using function, you need to write the prime number logic 3 times. So, there is
repetition of code.
But if you use functions, you need to write the logic only once and you can reuse it several
times.
Types of Functions
There are two types of functions in C programming:
1. Library Functions: are the functions which are declared in the C header files such
as scanf(), printf(), gets(), puts(), ceil(), floor() etc.
2. User-defined functions: are the functions which are created by the C programmer,
so that he/she can use it many times. It reduces complexity of a big program and
optimizes the code.
Declaration of a function
The syntax of creating function in c language is given below:
Return Value
A C function may or may not return a value from the function. If you don't have to return
any value from the function, use void for the return type.
Let's see a simple example of C function that doesn't return any value from the function.
1. void hello(){
2. printf("hello c");
3. }
If you want to return any value from the function, you need to use any data type such as
int, long, char etc. The return type depends on the value to be returned from the function.
Let's see a simple example of C function that returns int value from the function.
Example with return value:
1. int get(){
2. return 10;
3. }
In the above example, we have to return 10 as a value, so the return type is int. If you
want to return floating-point value (e.g. 10.2, 3.1, 54.5 etc), you need to use float as the
return type of the method.
1. float get(){
2. return 10.2;
3. }
Now, you need to call the function, to get the value of the function.
Parameters in C Function
A c function may have 0 or more parameters. You can have any type of parameter in C
program such as int, float, char etc. The parameters are also known as formal arguments.
1. void hello(){
2. printf("hello c");
3. }
Example of a function that has 1 parameter:
Calling a function in C
If a function returns any value, you need to call function to get the value returned from the
function. The syntax of calling a function in c programming is given below:
1. variable=function_name(arguments...);
1) variable: The variable is not mandatory. If function return type is void, you must not
provide the variable because void functions doesn't return any value.
3) arguments: You need to provide arguments while calling the C function. It is also known
as actual arguments.
1. #include <stdio.h>
2. #include <conio.h>
3. //defining function
4. void hello(){
5. printf("hello c programming");
6. }
7. void main(){
8. clrscr();
9.
10. hello();//calling a function
11. hello();
12. hello();
13.
14. getch();
15. }
Output
hello c programming
hello c programming
hello c programming
1. #include <stdio.h>
2. #include <conio.h>
3. //defining function
4. int cube(int n){
5. return n*n*n;
6. }
7. void main(){
8. int result1=0,result2=0;
9. clrscr();
10.
11. result1=cube(2);//calling function
12. result2=cube(3);
13.
14. printf("%d \n",result1);
15. printf("%d \n",result2);
16.
17. getch();
18. }
Output
8
27
Call by value in C
In call by value, original value is not modified.
In call by value, value being passed to the function is locally stored by the function
parameter in stack memory location. If you change the value of function parameter, it is
changed for the current function only. It will not change the value of variable inside the
caller method such as main().
Let's try to understand the concept of call by value in c language by the example given
below:
1. #include <stdio.h>
2. #include <conio.h>
3. void change(int num) {
4. printf("Before adding value inside function num=%d \n",num);
5. num=num+100;
6. printf("After adding value inside function num=%d \n", num);
7. }
8.
9. int main() {
10. int x=100;
11. clrscr();
12.
13. printf("Before function call x=%d \n", x);
14. change(x);//passing value in function
15. printf("After function call x=%d \n", x);
16.
17. getch();
18. return 0;
19. }
Output
Before function call x=100
Before adding value inside function num=100
After adding value inside function num=200
After function call x=100
Call by reference in C
In call by reference, original value is modified because we pass reference (address).
Here, address of the value is passed in the function, so actual and formal arguments shares
the same address space. Hence, value changed inside the function, is reflected inside as
well as outside the function.
Note: To understand the call by reference, you must have the basic knowledge of pointers.
Let's try to understand the concept of call by reference in c language by the example given
below:
1. #include <stdio.h>
2. #include <conio.h>
3. void change(int *num) {
4. printf("Before adding value inside function num=%d \n",*num);
5. (*num) += 100;
6. printf("After adding value inside function num=%d \n", *num);
7. }
8.
9. int main() {
10. int x=100;
11. clrscr();
12.
13. printf("Before function call x=%d \n", x);
14. change(&x);//passing reference in function
15. printf("After function call x=%d \n", x);
16.
17. getch();
18. return 0;
19. }
Output
Before function call x=100
Before adding value inside function num=100
After adding value inside function num=200
After function call x=200
2 Changes made inside the function is not reflected on Changes made inside the function
other functions the function also
3 Actual and formal arguments will be created in different Actual and formal arguments will
memory location memory location
Recursion in C
When function is called within the same function, it is known as recursion in C. The
function which calls the same function, is known as recursive function.
A function that calls itself, and doesn't perform any task after function call, is know as tail
recursion. In tail recursion, we generally call the same function with return statement. An
example of tail recursion is given below.
Let's see a simple example of recursion.
1. recursionfunction(){
2. recursionfunction();//calling self function
3. }
1. #include<stdio.h>
2. #include<conio.h>
3. int factorial (int n)
4. {
5. if ( n < 0)
6. return -1; /*Wrong value*/
7. if (n == 0)
8. return 1; /*Terminating condition*/
9. return (n * factorial (n -1));
10. }
11.
12. void main(){
13. int fact=0;
14. clrscr();
15. fact=factorial(5);
16. printf("\n factorial of 5 is %d",fact);
17.
18. getch();
19. }
Output
factorial of 5 is 120
We can understand the above program of recursive method call by the figure given below:
Storage
Classes in C
Storage classes are used to define scope and life time of a variable. There are four storage
classes in C programming.
o auto
o extern
o static
o register
extern RAM Zero Global Till the end of main program, May be decla
program
static RAM Zero Local Till the end of main program, Retains val
functions call
1) auto
The auto keyword is applied to all local variables automatically. It is the default storage class
that is why it is known as automatic variable.
1. #include <stdio.h>
2. void main(){
3. int a=10;
4. auto int b=10;//same like above
5. printf("%d %d",a,b);
6. }
Output:
10 10
2) register
The register variable allocates memory in register than RAM. Its size is same of register
size. It has a faster access than other variables.
It is recommended to use register variable only for quick access such as in counter.
3) static
The static variable is initialized only once and exists till the end of the program. It retains
its value between multiple functions call.
The static variable has the default value 0 which is provided by compiler.
1. #include <stdio.h>
2. void func() {
3. static int i=0;//static variable
4. int j=0;//local variable
5. i++;
6. j++;
7. printf("i= %d and j= %d\n", i, j);
8. }
9. void main() {
10. func();
11. func();
12. func();
13. }
Output:
i= 1 and j= 1
i= 2 and j= 1
i= 3 and j= 1
4) extern
The extern variable is visible to all the programs. It is used if two or more files are sharing
same variable or function.
C Array
Array in C language is a collection or group of elements (data). All the elements of c array
are homogeneous (similar). It has contiguous memory location.
C array is beneficial if you have to store similar elements. Suppose you have to store marks
of 50 students, one way to do this is allotting 50 variables. So it will be typical and hard to
manage. For example we can not access the value of these variables with only 1 or 2 lines
of code.
Another way to do this is array. By using array, we can access the elements easily. Only few
lines of code is required to access the elements of array.
Advantage of C Array
1) Code Optimization: Less code to the access the data.
2) Easy to traverse data: By using the for loop, we can retrieve the elements of an array
easily.
3) Easy to sort data: To sort the elements of array, we need a few lines of code only.
4) Random Access: We can access any element randomly using the array.
Disadvantage of C Array
1) Fixed Size: Whatever size, we define at the time of declaration of array, we can't exceed
the limit. So, it doesn't grow the size dynamically like LinkedList which we will learn later.
Declaration of C Array
We can declare an array in the c language in the following way.
1. data_type array_name[array_size];
Now, let us see the example to declare array.
1. int marks[5];
Here, int is the data_type, marks is the array_name and 5 is the array_size.
Initialization of C Array
A simple way to initialize array is by index. Notice that array index starts from 0 and ends
with [SIZE - 1].
1. marks[0]=80;//initialization of array
2. marks[1]=60;
3. marks[2]=70;
4. marks[3]=85;
5. marks[4]=75;
C array example
1. #include <stdio.h>
2. #include <conio.h>
3. void main(){
4. int i=0;
5. int marks[5];//declaration of array
6. clrscr();
7.
8. marks[0]=80;//initialization of array
9. marks[1]=60;
10. marks[2]=70;
11. marks[3]=85;
12. marks[4]=75;
13.
14. //traversal of array
15. for(i=0;i<5;i++){
16. printf("%d \n",marks[i]);
17. }//end of for loop
18.
19. getch();
20. }
Output
80
60
70
85
75
1. int marks[5]={20,30,40,50,60};
In such case, there is no requirement to define size. So it can also be written as the
following code.
1. int marks[]={20,30,40,50,60};
Let's see the full program to declare and initialize the array in C.
1. #include <stdio.h>
2. #include <conio.h>
3. void main(){
4. int i=0;
5. int marks[5]={20,30,40,50,60};//declaration and initialization of array
6. clrscr();
7.
8. //traversal of array
9. for(i=0;i<5;i++){
10. printf("%d \n",marks[i]);
11. }
12.
13. getch();
14. }
Output
20
30
40
50
60
The two dimensional, three dimensional or other dimensional arrays are also known
as multidimensional arrays.
1. data_type array_name[size1][size2];
A simple example to declare two dimensional array is given below.
1. int twodimen[4][3];
Here, 4 is the row number and 3 is the column number.
Initialization of 2D Array in C
A way to initialize the two dimensional array at the time of declaration is given below.
1. int arr[4][3]={{1,2,3},{2,3,4},{3,4,5},{4,5,6}};
Output
arr[0][0] = 1
arr[0][1] = 2
arr[0][2] = 3
arr[1][0] = 2
arr[1][1] = 3
arr[1][2] = 4
arr[2][0] = 3
arr[2][1] = 4
arr[2][2] = 5
arr[3][0] = 4
arr[3][1] = 5
arr[3][2] = 6
1. functionname(arrayname);//passing array
There are 3 ways to declare function that receives array as argument.
First way:
Second way:
Third way:
Output
minimum number is 3
C Pointers
The pointer in C language is a variable, it is also known as locator or indicator that points
to an address of a value.
Advantage of pointer
1) Pointer reduces the code and improves the performance, it is used to retrieving
strings, trees etc. and used with arrays, structures and functions.
3) It makes you able to access any memory location in the computer's memory.
Usage of pointer
There are many usage of pointers in c language.
Address Of Operator
The address of operator '&' returns the address of a variable. But, we need to use %u to
display the address of a variable.
1. #include <stdio.h>
2. #include <conio.h>
3. void main(){
4. int number=50;
5. clrscr();
6. printf("value of number is %d, address of number is %u",number,&number);
7. getch();
8. }
Output
value of number is 50, address of number is fff4
Declaring a pointer
The pointer in c language can be declared using * (asterisk symbol).
Pointer example
An example of using pointers printing the address and value is given below.
As you can see in the above figure, pointer variable stores the address of number variable
i.e. fff4. The value of number variable is 50. But the address of pointer variable p is aaa3.
By the help of * (indirection operator), we can print the value of pointer variable p.
1. #include <stdio.h>
2. #include <conio.h>
3. void main(){
4. int number=50;
5. int *p;
6. clrscr();
7. p=&number;//stores the address of number variable
8.
9. printf("Address of number variable is %x \n",&number);
10. printf("Address of p variable is %x \n",p);
11. printf("Value of p variable is %d \n",*p);
12.
13. getch();
14. }
Output
Address of number variable is fff4
Address of p variable is fff4
Value of p variable is 50
NULL Pointer
A pointer that is not assigned any value but NULL is known as NULL pointer. If you don't
have any address to be specified in the pointer at the time of declaration, you can assign
NULL value. It will a better approach.
int *p=NULL;
In most the libraries, the value of pointer is 0 (zero).
Output
Before swap: *p1=10 *p2=20
After swap: *p1=20 *p2=10
C Pointer to Pointer
In C pointer to pointer concept, a pointer refers to the address of another pointer.
In c language, a pointer can point to the address of another pointer which points to the
address of a value. Let's understand it by the diagram given below:
Let's see the syntax of pointer to pointer.
1. int **p2;
As you can see in the above figure, p2 contains the address of p (fff2) and p contains the
address of number variable (fff4).
1. #include <stdio.h>
2. #include <conio.h>
3. void main(){
4. int number=50;
5. int *p;//pointer to int
6. int **p2;//pointer to pointer
7. clrscr();
8. p=&number;//stores the address of number variable
9. p2=&p;
10.
11. printf("Address of number variable is %x \n",&number);
12. printf("Address of p variable is %x \n",p);
13. printf("Value of *p variable is %d \n",*p);
14. printf("Address of p2 variable is %x \n",p2);
15. printf("Value of **p2 variable is %d \n",**p);
16.
17. getch();
18. }
Output
Address of number variable is fff4
Address of p variable is fff4
Value of *p variable is 50
Address of p2 variable is fff2
Value of **p variable is 50
Pointer Arithmetic in C
In C pointer holds address of a value, so there can be arithmetic operations on the pointer
variable. Following arithmetic operations are possible on pointer in C language:
o Increment
o Decrement
o Addition
o Subtraction
o Comparison
Incrementing Pointer in C
Incrementing a pointer is used in array because it is contiguous memory location. Moreover,
we know the value of next location.
Increment operation depends on the data type of the pointer variable. The formula of
incrementing pointer is given below:
32 bit
For 32 bit int variable, it will increment to 2 byte.
64 bit
For 64 bit int variable, it will increment to 4 byte.
Output
Address of p variable is 3214864300
After increment: Address of p variable is 3214864304
Decrementing Pointer in C
Like increment, we can decrement a pointer variable. The formula of decrementing pointer
is given below:
32 bit
For 32 bit int variable, it will decrement to 2 byte.
64 bit
For 64 bit int variable, it will decrement to 4 byte.
1. #include <stdio.h>
2. void main(){
3. int number=50;
4. int *p;//pointer to int
5. p=&number;//stores the address of number variable
6.
7. printf("Address of p variable is %u \n",p);
8. p=p-1;
9. printf("After decrement: Address of p variable is %u \n",p);
10. }
Output
Address of p variable is 3214864300
After decrement: Address of p variable is 3214864296
C Pointer Addition
We can add a value to the pointer variable. The formula of adding value to pointer is given
below:
32 bit
For 32 bit int variable, it will add 2 * number.
64 bit
For 64 bit int variable, it will add 4 * number.
Let's see the example of adding value to pointer variable on 64 bit OS.
1. #include <stdio.h>
2. void main(){
3. int number=50;
4. int *p;//pointer to int
5. p=&number;//stores the address of number variable
6.
7. printf("Address of p variable is %u \n",p);
8. p=p+3; //adding 3 to pointer variable
9. printf("After adding 3: Address of p variable is %u \n",p);
10. }
Output
Address of p variable is 3214864300
After adding 3: Address of p variable is 3214864312
As you can see, address of p is 3214864300. But after adding 3 with p variable, it is
3214864312 i.e. 4*3=12 increment. Since we are using 64 bit OS, it increments 12. But if
we were using 32 bit OS, it were incrementing to 6 only i.e. 2*3=6. As integer value
occupies 2 byte memory in 32 bit OS.
C Pointer Subtraction
Like pointer addition, we can subtract a value from the pointer variable. The formula of
subtracting value from pointer variable is given below:
32 bit
For 32 bit int variable, it will subtract 2 * number.
64 bit
For 64 bit int variable, it will subtract 4 * number.
Let's see the example of subtracting value from pointer variable on 64 bit OS.
1. #include <stdio.h>
2. void main(){
3. int number=50;
4. int *p;//pointer to int
5. p=&number;//stores the address of number variable
6.
7. printf("Address of p variable is %u \n",p);
8. p=p-3; //subtracting 3 from pointer variable
9. printf("After subtracting 3: Address of p variable is %u \n",p);
10. }
Output
Address of p variable is 3214864300
After subtracting 3: Address of p variable is 3214864288
You can see after subtracting 3 from pointer variable, it is 12 (4*3) less than the previous
address value.
1. malloc()
2. calloc()
3. realloc()
4. free()
Before learning above functions, let's understand the difference between static memory
allocation and dynamic memory allocation.
memory can't be increased while executing program. memory can be increased while execut
Now let's have a quick look at the methods used for dynamic memory allocation.
malloc() function in C
The malloc() function allocates single block of requested memory.
1. ptr=(cast-type*)malloc(byte-size)
1. #include <stdio.h>
2. #include <stdlib.h>
3. void main(){
4. int n,i,*ptr,sum=0;
5. printf("Enter number of elements: ");
6. scanf("%d",&n);
7. ptr=(int*)malloc(n*sizeof(int)); //memory allocated using malloc
8. if(ptr==NULL)
9. {
10. printf("Sorry! unable to allocate memory");
11. exit(0);
12. }
13. printf("Enter elements of array: ");
14. for(i=0;i<n;++i)
15. {
16. scanf("%d",ptr+i);
17. sum+=*(ptr+i);
18. }
19. printf("Sum=%d",sum);
20. free(ptr);
21. }
Output:
calloc() function in C
The calloc() function allocates multiple block of requested memory.
1. ptr=(cast-type*)calloc(number, byte-size)
1. #include <stdio.h>
2. #include <stdlib.h>
3. void main(){
4. int n,i,*ptr,sum=0;
5. printf("Enter number of elements: ");
6. scanf("%d",&n);
7. ptr=(int*)calloc(n,sizeof(int)); //memory allocated using calloc
8. if(ptr==NULL)
9. {
10. printf("Sorry! unable to allocate memory");
11. exit(0);
12. }
13. printf("Enter elements of array: ");
14. for(i=0;i<n;++i)
15. {
16. scanf("%d",ptr+i);
17. sum+=*(ptr+i);
18. }
19. printf("Sum=%d",sum);
20. free(ptr);
21. }
Output:
realloc() function in C
If memory is not sufficient for malloc() or calloc(), you can reallocate the memory by
realloc() function. In short, it changes the memory size.
1. ptr=realloc(ptr, new-size)
free() function in C
The memory occupied by malloc() or calloc() functions must be released by calling free()
function. Otherwise, it will consume memory until program exit.
1. free(ptr)
Structure in C
Structure in c language is a user defined datatype that allows you to hold different type
of elements.
It works like a template in C++ and class in Java. You can have different type of elements in
it.
Defining structure
The struct keyword is used to define structure. Let's see the syntax to define structure in c.
1. struct structure_name
2. {
3. data_type member1;
4. data_type member2;
5. .
6. .
7. data_type memeberN;
8. };
Let's see the example to define structure for employee in c.
1. struct employee
2. { int id;
3. char name[50];
4. float salary;
5. };
Here, struct is the keyword, employee is the tag name of
structure; id, name and salary are the members or fields of the structure. Let's
understand it by the diagram given below:
1st way:
Let's see the example to declare structure variable by struct keyword. It should be declared
within the main function.
1. struct employee
2. { int id;
3. char name[50];
4. float salary;
5. };
Now write given code inside the main() function.
Let's see another way to declare variable at the time of defining structure.
1. struct employee
2. { int id;
3. char name[50];
4. float salary;
5. }e1,e2;
If no. of variables are fixed, use 2nd approach. It saves your code to declare variable in
main() fuction.
Let's see the code to access the id member of p1 variable by . (member) operator.
1. p1.id
C Structure example
Let's see a simple example of structure in C language.
1. #include <stdio.h>
2. #include <string.h>
3. struct employee
4. { int id;
5. char name[50];
6. }e1; //declaring e1 variable for structure
7. int main( )
8. {
9. //store first employee information
10. e1.id=101;
11. strcpy(e1.name, "Sonoo Jaiswal");//copying string into char array
12. //printing first employee information
13. printf( "employee 1 id : %d\n", e1.id);
14. printf( "employee 1 name : %s\n", e1.name);
15. return 0;
16. }
Output:
employee 1 id : 101
employee 1 name : Sonoo Jaiswal
Let's see another example of structure in C language to store many employees information.
1. #include <stdio.h>
2. #include <string.h>
3. struct employee
4. { int id;
5. char name[50];
6. float salary;
7. }e1,e2; //declaring e1 and e2 variables for structure
8. int main( )
9. {
10. //store first employee information
11. e1.id=101;
12. strcpy(e1.name, "Sonoo Jaiswal");//copying string into char array
13. e1.salary=56000;
14.
15. //store second employee information
16. e2.id=102;
17. strcpy(e2.name, "James Bond");
18. e2.salary=126000;
19.
20. //printing first employee information
21. printf( "employee 1 id : %d\n", e1.id);
22. printf( "employee 1 name : %s\n", e1.name);
23. printf( "employee 1 salary : %f\n", e1.salary);
24.
25. //printing second employee information
26. printf( "employee 2 id : %d\n", e2.id);
27. printf( "employee 2 name : %s\n", e2.name);
28. printf( "employee 2 salary : %f\n", e2.salary);
29.
30. return 0;
31. }
Output:
employee 1 id : 101
employee 1 name : Sonoo Jaiswal
employee 1 salary : 56000.000000
employee 2 id : 102
employee 2 name : James Bond
employee 2 salary : 126000.000000
Array of Structures in C
There can be array of structures in C programming to store many information of different
data types. The array of structures is also known as collection of structures.
Let's see an example of structure with array that stores information of 5 students and prints
it.
1. #include<stdio.h>
2. #include<conio.h>
3. #include<string.h>
4. struct student{
5. int rollno;
6. char name[10];
7. };
8. void main(){
9. int i;
10. struct student st[5];
11. clrscr();
12. printf("Enter Records of 5 students");
13.
14. for(i=0;i<5;i++){
15. printf("\nEnter Rollno:");
16. scanf("%d",&st[i].rollno);
17. printf("\nEnter Name:");
18. scanf("%s",&st[i].name);
19. }
20.
21. printf("\nStudent Information List:");
22. for(i=0;i<5;i++){
23. printf("\nRollno:%d, Name:%s",st[i].rollno,st[i].name);
24. }
25.
26. getch();
27. }
Output:
Nested Structure in C
Nested structure in c language can have another structure as a member. There are two
ways to define nested structure in c language:
1. By separate structure
2. By Embedded structure
1) Separate structure
We can create 2 structures, but dependent structure should be used inside the main
structure as a member. Let's see the code of nested structure.
1. struct Date
2. {
3. int dd;
4. int mm;
5. int yyyy;
6. };
7. struct Employee
8. {
9. int id;
10. char name[20];
11. struct Date doj;
12. }emp1;
As you can see, doj (date of joining) is the variable of type Date. Here doj is used as a
member in Employee structure. In this way, we can use Date structure in many structures.
2) Embedded structure
We can define structure within the structure also. It requires less code than previous way.
But it can't be used in many structures.
1. struct Employee
2. {
3. int id;
4. char name[20];
5. struct Date
6. {
7. int dd;
8. int mm;
9. int yyyy;
10. }doj;
11. }emp1;
1. e1.doj.dd
2. e1.doj.mm
3. e1.doj.yyyy
C Nested Structure example
Let's see a simple example of nested structure in C language.
1. #include <stdio.h>
2. #include <string.h>
3. struct Employee
4. {
5. int id;
6. char name[20];
7. struct Date
8. {
9. int dd;
10. int mm;
11. int yyyy;
12. }doj;
13. }e1;
14. int main( )
15. {
16. //storing employee information
17. e1.id=101;
18. strcpy(e1.name, "Sonoo Jaiswal");//copying string into char array
19. e1.doj.dd=10;
20. e1.doj.mm=11;
21. e1.doj.yyyy=2014;
22.
23. //printing first employee information
24. printf( "employee id : %d\n", e1.id);
25. printf( "employee name : %s\n", e1.name);
26. printf( "employee date of joining (dd/mm/yyyy) : %d/%d/%d\n", e1.doj.dd,
e1.doj.mm,e1.doj.yyyy);
27. return 0;
28. }
Output:
employee id : 101
employee name : Sonoo Jaiswal
employee date of joining (dd/mm/yyyy) : 10/11/2014
C Union
Like structure, Union in c language is a user defined datatype that is used to hold
different type of elements.
But it doesn't occupy sum of all members size. It occupies the memory of largest member
only. It shares memory of largest member.
Defining union
The union keyword is used to define union. Let's see the syntax to define union in c.
1. union union_name
2. {
3. data_type member1;
4. data_type member2;
5. .
6. .
7. data_type memeberN;
8. };
Let's see the example to define union for employee in c.
1. union employee
2. { int id;
3. char name[50];
4. float salary;
5. };
C Union example
Let's see a simple example of union in C language.
1. #include <stdio.h>
2. #include <string.h>
3. union employee
4. { int id;
5. char name[50];
6. }e1; //declaring e1 variable for union
7. int main( )
8. {
9. //store first employee information
10. e1.id=101;
11. strcpy(e1.name, "Sonoo Jaiswal");//copying string into char array
12. //printing first employee information
13. printf( "employee 1 id : %d\n", e1.id);
14. printf( "employee 1 name : %s\n", e1.name);
15. return 0;
16. }
Output:
employee 1 id : 1869508435
employee 1 name : Sonoo Jaiswal
As you can see, id gets garbage value because name has large memory size. So only name
will have actual value.
File Handling in C
File Handling in c language is used to open, read, write, search or close file. It is used for
permanent storage.
Advantage of File
It will contain the data even after program exit. Normally we use variable or array to store
data, but data is lost after program exit. Variables and arrays are non-permanent storage
medium whereas file is permanent storage medium.
Mode Description
C fseek()
Syntax:
Example:
1. #include <stdio.h>
2. main(){
3. FILE *fp;
4. fp = fopen("file.txt", "w");//opening file
5. fprintf(fp, "Hello file by fprintf...\n");//writing data into file
6. fclose(fp);//closing file
7. }
Syntax:
1. #include <stdio.h>
2. main(){
3. FILE *fp;
4. char buff[255];//creating char array to store data of file
5. fp = fopen("file.txt","r");
6. while(fscanf(fp, "%s", buff)!=EOF){
7. printf("%s ", buff );
8. }
9. fclose(fp);
10. }
Output:
1. #include <stdio.h>
2. void main()
3. {
4. FILE *fptr;
5. int id;
6. char name[30];
7. float salary;
8. fptr = fopen("emp.txt", "w+");/* open for writing */
9. if (fptr == NULL)
10. {
11. printf("File does not exists \n");
12. return;
13. }
14. printf("Enter the id\n");
15. scanf("%d", &id);
16. fprintf(fptr, "Id= %d\n", id);
17. printf("Enter the name \n");
18. scanf("%s", name);
19. fprintf(fptr, "Name= %s\n", name);
20. printf("Enter the salary\n");
21. scanf("%f", &salary);
22. fprintf(fptr, "Salary= %.2f\n", salary);
23. fclose(fptr);
24. }
Output:
Enter the id
1
Enter the name
sonoo
Enter the salary
120000
Now open file from current directory. For windows operating system, go to TC\bin directory,
you will see emp.txt file. It will have following information.
emp.txt
Id= 1
Name= sonoo
Salary= 120000
Syntax:
Example:
1. #include <stdio.h>
2. main(){
3. FILE *fp;
4. fp = fopen("file1.txt", "w");//opening file
5. fputc('a',fp);//writing single character into file
6. fclose(fp);//closing file
7. }
file1.txt
Syntax:
Example:
1. #include<stdio.h>
2. #include<conio.h>
3. void main(){
4. FILE *fp;
5. char c;
6. clrscr();
7. fp=fopen("myfile.txt","r");
8.
9. while((c=fgetc(fp))!=EOF){
10. printf("%c",c);
11. }
12. fclose(fp);
13. getch();
14. }
myfile.txt
Syntax:
Example:
1. #include<stdio.h>
2. #include<conio.h>
3. void main(){
4. FILE *fp;
5. clrscr();
6.
7. fp=fopen("myfile2.txt","w");
8. fputs("hello c programming",fp);
9.
10. fclose(fp);
11. getch();
12. }
myfile2.txt
hello c programming
Syntax:
1. char* fgets(char *s, int n, FILE *stream)
Example:
1. #include<stdio.h>
2. #include<conio.h>
3. void main(){
4. FILE *fp;
5. char text[300];
6. clrscr();
7.
8. fp=fopen("myfile2.txt","r");
9. printf("%s",fgets(text,200,fp));
10.
11. fclose(fp);
12. getch();
13. }
Output:
hello c programming
C fseek() function
The fseek() function is used to set the file pointer to the specified offset. It is used to write
data into file at desired location.
Syntax:
There are 3 constants used in the fseek() function for whence: SEEK_SET, SEEK_CUR and
SEEK_END.
Example:
1. #include <stdio.h>
2. void main(){
3. FILE *fp;
4.
5. fp = fopen("myfile.txt","w+");
6. fputs("This is javatpoint", fp);
7.
8. fseek( fp, 7, SEEK_SET );
9. fputs("sonoo jaiswal", fp);
10. fclose(fp);
11. }
myfile.txt
C rewind() function
The rewind() function sets the file pointer at the beginning of the stream. It is useful if you
have to use stream many times.
Syntax:
Example:
File: file.txt
File: rewind.c
1. #include<stdio.h>
2. #include<conio.h>
3. void main(){
4. FILE *fp;
5. char c;
6. clrscr();
7. fp=fopen("file.txt","r");
8.
9. while((c=fgetc(fp))!=EOF){
10. printf("%c",c);
11. }
12.
13. rewind(fp);//moves the file pointer at beginning of the file
14.
15. while((c=fgetc(fp))!=EOF){
16. printf("%c",c);
17. }
18.
19. fclose(fp);
20. getch();
21. }
Output:
As you can see, rewind() function moves the file pointer at beginning of the file that is why
"this is simple text" is printed 2 times. If you don't call rewind() function, "this is simple
text" will be printed only once.
C ftell() function
The ftell() function returns the current file position of the specified stream. We can use
ftell() function to get the total size of a file after moving file pointer at the end of file. We
can use SEEK_END constant to move the file pointer at the end of file.
Syntax:
Example:
File: ftell.c
1. #include <stdio.h>
2. #include <conio.h>
3. void main (){
4. FILE *fp;
5. int length;
6. clrscr();
7. fp = fopen("file.txt", "r");
8. fseek(fp, 0, SEEK_END);
9.
10. length = ftell(fp);
11.
12. fclose(fp);
13. printf("Size of file: %d bytes", length);
14. getch();
15. }
Output:
C Preprocessor Directives
The C preprocessor is a micro processor that is used by compiler to transform your code
before compilation. It is called micro preprocessor because it allows us to add macros.
o #include
o #define
o #undef
o #ifdef
o #ifndef
o #if
o #else
o #elif
o #endif
o #error
o #pragma
What is Macro
Please visit next page.
next prev
C Macros
A macro is a segment of code which is replaced by the value of macro. Macro is defined
by #define directive. There are two types of macros:
1. Object-like Macros
2. Function-like Macros
Object-like Macros
Here, PI is the macro name which will be replaced by the value 3.14.
Function-like Macros
Visit #define to see the full example of object-like and function-like macros.
C Predefined Macros
ANSI C defines many predefined macros that can be used in c program.
File: simple.c
1. #include <stdio.h>
2. main() {
3. printf("File:%s\n", __FILE__ );
4. printf("Date :%s\n", __DATE__ );
5. printf("Time :%s\n", __TIME__ );
6. printf("Line :%d\n", __LINE__ );
7. printf("STDC :%d\n", __STDC__ );
8. }
Output:
File :simple.c
Date :Dec 6 2015
Time :12:28:46
Line :6
STDC :1
C #include
The #include preprocessor directive is used to paste code of given file into current file. It is
used include system-defined and user-defined header files. If included file is not found,
compiler renders error.
By the use of #include directive, we provide information to the preprocessor where to look
for the header files. There are two variants to use #include directive.
1. #include <filename>
2. #include "filename"
The #include <filename> tells the compiler to look for the directory where system header
files are held. In UNIX, it is \usr\include directory.
The #include "filename" tells the compiler to look in the current directory from where
program is running.
1. #include <stdio.h>
2. main() {
3. printf("Hello C");
4. }
Output:
Hello C
#include notes:
Note 1: In #include directive, comments are not recognized. So in case of #include
<a//b>, a//b is treated as filename.
Note 2: In #include directive, backslash is considered as normal text not escape sequence.
So in case of #include <a\nb>, a\nb is treated as filename.
Note 3: You can use only comment after filename otherwise it will give error.
C #define
The #define preprocessor directive is used to define constant or micro substitution. It can
use any basic data type.
Syntax:
1. #include <stdio.h>
2. #define PI 3.14
3. main() {
4. printf("%f",PI);
5. }
Output:
3.140000
1. #include <stdio.h>
2. #define MIN(a,b) ((a)<(b)?(a):(b))
3. void main() {
4. printf("Minimum between 10 and 20 is: %d\n", MIN(10,20));
5. }
Output:
C #undef
The #undef preprocessor directive is used to undefine the constant or macro defined by
#define.
Syntax:
1. #undef token
1. #include <stdio.h>
2. #define PI 3.14
3. #undef PI
4. main() {
5. printf("%f",PI);
6. }
Output:
The #undef directive is used to define the preprocessor constant to a limited scope so that
you can declare constant again.
Let's see an example where we are defining and undefining number variable. But before
being undefined, it was used by square variable.
1. #include <stdio.h>
2. #define number 15
3. int square=number*number;
4. #undef number
5. main() {
6. printf("%d",square);
7. }
Output:
225
C #ifdef
The #ifdef preprocessor directive checks if macro is defined by #define. If yes, it executes
the code otherwise #else code is executed, if present.
Syntax:
1. #ifdef MACRO
2. //code
3. #endif
1. #ifdef MACRO
2. //successful code
3. #else
4. //else code
5. #endif
C #ifdef example
Let's see a simple example to use #ifdef preprocessor directive.
1. #include <stdio.h>
2. #include <conio.h>
3. #define NOINPUT
4. void main() {
5. int a=0;
6. #ifdef NOINPUT
7. a=2;
8. #else
9. printf("Enter a:");
10. scanf("%d", &a);
11. #endif
12. printf("Value of a: %d\n", a);
13. getch();
14. }
Output:
Value of a: 2
But, if you don't define NOINPUT, it will ask user to enter a number.
1. #include <stdio.h>
2. #include <conio.h>
3. void main() {
4. int a=0;
5. #ifdef NOINPUT
6. a=2;
7. #else
8. printf("Enter a:");
9. scanf("%d", &a);
10. #endif
11.
12. printf("Value of a: %d\n", a);
13. getch();
14. }
Output:
Enter a:5
Value of a: 5
C #ifndef
The #ifndef preprocessor directive checks if macro is not defined by #define. If yes, it
executes the code otherwise #else code is executed, if present.
Syntax:
1. #ifndef MACRO
2. //code
3. #endif
1. #ifndef MACRO
2. //successful code
3. #else
4. //else code
5. #endif
C #ifndef example
Let's see a simple example to use #ifndef preprocessor directive.
1. #include <stdio.h>
2. #include <conio.h>
3. #define INPUT
4. void main() {
5. int a=0;
6. #ifndef INPUT
7. a=2;
8. #else
9. printf("Enter a:");
10. scanf("%d", &a);
11. #endif
12. printf("Value of a: %d\n", a);
13. getch();
14. }
Output:
Enter a:5
Value of a: 5
But, if you don't define INPUT, it will execute the code of #ifndef.
1. #include <stdio.h>
2. #include <conio.h>
3. void main() {
4. int a=0;
5. #ifndef INPUT
6. a=2;
7. #else
8. printf("Enter a:");
9. scanf("%d", &a);
10. #endif
11. printf("Value of a: %d\n", a);
12. getch();
13. }
Output:
Value of a: 2
C #if
The #if preprocessor directive evaluates the expression or condition. If condition is true, it
executes the code otherwise #elseif or #else or #endif code is executed.
Syntax:
1. #if expression
2. //code
3. #endif
1. #if expression
2. //if code
3. #else
4. //else code
5. #endif
1. #if expression
2. //if code
3. #elif expression
4. //elif code
5. #else
6. //else code
7. #endif
C #if example
Let's see a simple example to use #if preprocessor directive.
1. #include <stdio.h>
2. #include <conio.h>
3. #define NUMBER 0
4. void main() {
5. #if (NUMBER==0)
6. printf("Value of Number is: %d",NUMBER);
7. #endif
8. getch();
9. }
Output:
1. #include <stdio.h>
2. #include <conio.h>
3. #define NUMBER 1
4. void main() {
5. clrscr();
6. #if (NUMBER==0)
7. printf("1 Value of Number is: %d",NUMBER);
8. #endif
9.
10. #if (NUMBER==1)
11. printf("2 Value of Number is: %d",NUMBER);
12. #endif
13. getch();
14. }
Output:
C #else
The #else preprocessor directive evaluates the expression or condition if condition of #if is
false. It can be used with #if, #elif, #ifdef and #ifndef directives.
Syntax:
1. #if expression
2. //if code
3. #else
4. //else code
5. #endif
1. #if expression
2. //if code
3. #elif expression
4. //elif code
5. #else
6. //else code
7. #endif
C #else example
Let's see a simple example to use #else preprocessor directive.
1. #include <stdio.h>
2. #include <conio.h>
3. #define NUMBER 1
4. void main() {
5. #if NUMBER==0
6. printf("Value of Number is: %d",NUMBER);
7. #else
8. print("Value of Number is non-zero");
9. #endif
10. getch();
11. }
Output:
C #error
The #error preprocessor directive indicates error. The compiler gives fatal error if #error
directive is found and skips further compilation process.
C #error example
Let's see a simple example to use #error preprocessor directive.
1. #include<stdio.h>
2. #ifndef __MATH_H
3. #error First include then compile
4. #else
5. void main(){
6. float a;
7. a=sqrt(7);
8. printf("%f",a);
9. }
10. #endif
Output:
1. #include<stdio.h>
2. #include<math.h>
3. #ifndef __MATH_H
4. #error First include then compile
5. #else
6. void main(){
7. float a;
8. a=sqrt(7);
9. printf("%f",a);
10. }
11. #endif
Output:
2.645751
C #pragma
The #pragma preprocessor directive is used to provide additional information to the
compiler. The #pragma directive is used by the compiler to offer machine or operating-
system feature.
Syntax:
1. #pragma token
1. #pragma argsused
2. #pragma exit
3. #pragma hdrfile
4. #pragma hdrstop
5. #pragma inline
6. #pragma option
7. #pragma saveregs
8. #pragma startup
9. #pragma warn
1. #include<stdio.h>
2. #include<conio.h>
3.
4. void func() ;
5.
6. #pragma startup func
7. #pragma exit func
8.
9. void main(){
10. printf("\nI am in main");
11. getch();
12. }
13.
14. void func(){
15. printf("\nI am in func");
16. getch();
17. }
Output:
I am in func
I am in main
I am in func
Command Line Arguments in C
The arguments passed from command line are called command line arguments. These
arguments are handled by main() function.
To support command line argument, you need to change the structure of main() function as
given below.
Here, argc counts the number of arguments. It counts the file name as the first argument.
The argv[] contains the total number of arguments. The first argument is the file name
always.
Example
Let's see the example of command line arguments where we are passing one argument with
file name.
1. #include <stdio.h>
2. void main(int argc, char *argv[] ) {
3.
4. printf("Program name is: %s\n", argv[0]);
5.
6. if(argc < 2){
7. printf("No argument passed through command line.\n");
8. }
9. else{
10. printf("First argument is: %s\n", argv[1]);
11. }
12. }
1. ./program hello
1. program.exe hello
Output:
Program name is: program
First argument is: hello
Output:
But if you pass many arguments within double quote, all arguments will be treated as a
single argument only.
Output:
You can write your program to print all the arguments. In this program, we are printing only
argv[1], that is why it is printing only one argument.
1) What is C language?
C is a mid level and procedural programming language. More details...
o Simple
o Portable
o Mid Level
o Structured
o Fast Speed
o Memory Management
o Extensible
More details...
More details...
1. void function1(){
2. int x=10;//local variable
3. static int y=10;//static variable
4. x=x+1;
5. y=y+1;
6. printf("%d\n",x);//will always print 11
7. printf("%d\n",y);//will always increment value, it will print 11, 12, 13 and so on
8. }
More details...
o Call by Reference
1. int *p=NULL;
More details...
2. calloc()
3. realloc()
4. free()
More details...
More details...
1. void f()
2. {
3. int i ;
4. auto int j;
5. }
Here, both 'i' and 'j' variables are automatic variables.
1. #include<stdio.h>
2. #define start main
3. void start() {
4. printf("Hello");
5. }
More details...
The getche() function reads a single character from keyword but data is displayed on the
output screen. Press Alt+f5 to see the entered character.
A near pointer doesn't have explicit selector whereas far and huge pointers have explicit
selector. When you perform pointer arithmetic on far pointer, selector is not modified but in
case of huge pointer it can be modified.
These are the non-standard keywords and implementation specific. These are irrelevant in
modern platform.
1. float f=3.4;
2. int a=(int)f;//typecasting
1. for(;;){
2. //code to be executed
3. }
Infinite While Loop:
1. while(1){
2. //code to be executed
3. }
Infinite Do-While Loop:
1. do{
2. //code to be executed
3. }while(1);
1. #include<stdio.h>
2. void main(){
3. if(printf("hello world")){}
4. }
More details...
Fibonacci Series in C
Fibonacci Series in C: In case of fibonacci series, next number is the sum of previous two
numbers for example 0, 1, 1, 2, 3, 5, 8, 13, 21 etc. The first two numbers of fibonacci
series are 0 and 1.
1. #include<stdio.h>
2. #include<conio.h>
3. void main()
4. {
5. int n1=0,n2=1,n3,i,number;
6. clrscr();
7. printf("Enter the number of elements:");
8. scanf("%d",&number);
9. printf("\n%d %d",n1,n2);//printing 0 and 1
10.
11. for(i=2;i<number;++i)//loop starts from 2 because 0 and 1 are already printed
12. {
13. n3=n1+n2;
14. printf(" %d",n3);
15. n1=n2;
16. n2=n3;
17. }
18. getch();
19. }
Output:
1. #include<stdio.h>
2. #include<conio.h>
3. void printFibonacci(int n){
4. static int n1=0,n2=1,n3;
5. if(n>0){
6. n3 = n1 + n2;
7. n1 = n2;
8. n2 = n3;
9. printf("%d ",n3);
10. printFibonacci(n-1);
11. }
12. }
13. void main(){
14. int n;
15. clrscr();
16. printf("Enter the number of elements: ");
17. scanf("%d",&n);
18.
19. printf("Fibonacci Series: ");
20. printf("%d %d ",0,1);
21. printFibonacci(n-2);//n-2 because 2 numbers are already printed
22.
23. getch();
24. }
Output:
Note: Zero (0) and 1 are not considered as prime numbers. Two (2) is the only one even prime
number because all the numbers can be divided by 2.
Let's see the prime number program in C. In this c program, we will take an input from the
user and check whether the number is prime or not.
1. #include<stdio.h>
2. #include<conio.h>
3. void main()
4. {
5. int n,i,m=0,flag=0;
6. clrscr();
7. printf("Enter the number to check prime:");
8. scanf("%d",&n);
9. m=n/2;
10. for(i=2;i<=m;i++)
11. {
12. if(n%i==0)
13. {
14. printf("Number is not prime");
15. flag=1;
16. break;
17. }
18. }
19. if(flag==0)
20. printf("Number is prime");
21. getch();
22. }
Output:
Palindrome program in C
Palindrome number in c: A palindrome number is a number that is same after reverse.
For example 121, 34543, 343, 131, 48984 are the palindrome numbers.
Let's see the palindrome program in C. In this c program, we will get an input from the user
and check whether number is palindrome or not.
1. #include<stdio.h>
2. #include<conio.h>
3. main()
4. {
5. int n,r,sum=0,temp;
6. clrscr();
7. printf("enter the number=");
8. scanf("%d",&n);
9. temp=n;
10. while(n>0)
11. {
12. r=n%10;
13. sum=(sum*10)+r;
14. n=n/10;
15. }
16. if(temp==sum)
17. printf("palindrome number ");
18. else
19. printf("not palindrome");
20. getch();
21. }
Output:
Factorial Program in C
Factorial Program in C: Factorial of n is the product of all positive descending integers.
Factorial of n is denoted by n!. For example:
1. 5! = 5*4*3*2*1 = 120
2. 3! = 3*2*1 = 6
Here, 5! is pronounced as "5 factorial", it is also called "5 bang" or "5 shriek".
There are many ways to write the factorial program in c language. Let's see the 2 ways to
write the factorial program.
1. #include<stdio.h>
2. #include<conio.h>
3. void main(){
4. int i,fact=1,number;
5. clrscr();
6. printf("Enter a number: ");
7. scanf("%d",&number);
8.
9. for(i=1;i<=number;i++){
10. fact=fact*i;
11. }
12. printf("Factorial of %d is: %d",number,fact);
13. getch();
14. }
Output:
Enter a number: 5
Factorial of 5 is: 120
1. #include<stdio.h>
2. #include<conio.h>
3.
4. long factorial(int n)
5. {
6. if (n == 0)
7. return 1;
8. else
9. return(n * factorial(n-1));
10. }
11.
12. void main()
13. {
14. int number;
15. long fact;
16. clrscr();
17. printf("Enter a number: ");
18. scanf("%d", &number);
19.
20. fact = factorial(number);
21. printf("Factorial of %d is %ld\n", number, fact);
22. getch();
23. }
Output:
Enter a number: 6
Factorial of 5 is: 720
Armstrong Number in C
Before going to write the c program to check whether the number is Armstrong or not, let's
understand what is Armstrong number.
Armstrong number is a number that is equal to the sum of cubes of its digits. For example
0, 1, 153, 370, 371 and 407 are the Armstrong numbers.
1. 153 = (1*1*1)+(5*5*5)+(3*3*3)
2. where:
3. (1*1*1)=1
4. (5*5*5)=125
5. (3*3*3)=27
6. So:
7. 1+125+27=153
1. 371 = (3*3*3)+(7*7*7)+(1*1*1)
2. where:
3. (3*3*3)=27
4. (7*7*7)=343
5. (1*1*1)=1
6. So:
7. 27+343+1=371
1. #include<stdio.h>
2. #include<conio.h>
3. main()
4. {
5. int n,r,sum=0,temp;
6. clrscr();
7. printf("enter the number=");
8. scanf("%d",&n);
9. temp=n;
10. while(n>0)
11. {
12. r=n%10;
13. sum=sum+(r*r*r);
14. n=n/10;
15. }
16. if(temp==sum)
17. printf("armstrong number ");
18. else
19. printf("not armstrong number");
20. getch();
21. }
Output:
enter the number=153
armstrong number
enter the number=5
not armstrong number
1. #include<stdio.h>
2. #include<conio.h>
3. void main()
4. {
5. int n,sum=0,m;
6. clrscr();
7. printf("Enter a number:");
8. scanf("%d",&n);
9. while(n>0)
10. {
11. m=n%10;
12. sum=sum+m;
13. n=n/10;
14. }
15. printf("Sum is=%d",sum);
16. getch();
17. }
Output:
Enter a number:654
Sum is=15
Enter a number:123
Sum is=6
1. #include<stdio.h>
2. #include<conio.h>
3. main()
4. {
5. int n, reverse=0, rem;
6. clrscr();
7. printf("Enter a number: ");
8. scanf("%d", &n);
9. while(n!=0)
10. {
11. rem=n%10;
12. reverse=reverse*10+rem;
13. n/=10;
14. }
15. printf("Reversed Number: %d",reverse);
16. getch();
17. }
Output:
1. By + and -
2. By * and /
1. #include<stdio.h>
2. #include<conio.h>
3. main()
4. {
5. int a=10, b=20;
6. clrscr();
7. printf("Before swap a=%d b=%d",a,b);
8.
9. a=a+b;//a=30 (10+20)
10. b=a-b;//b=10 (30-20)
11. a=a-b;//a=20 (30-10)
12.
13. printf("\nAfter swap a=%d b=%d",a,b);
14. getch();
15. }
Output:
1. #include<stdio.h>
2. #include<conio.h>
3. main()
4. {
5. int a=10, b=20;
6. clrscr();
7. printf("Before swap a=%d b=%d",a,b);
8.
9. a=a*b;//a=200 (10*20)
10. b=a/b;//b=10 (200/20)
11. a=a/b;//a=20 (200/10)
12.
13. printf("\nAfter swap a=%d b=%d",a,b);
14. getch();
15. }
Output:
1. Using if
2. Using switch
1. #include<stdio.h>
2. void main(){
3. if(printf("hello world")){}
4. }
Output:
hello world
Program 2: Using switch statement
Let's see a simple c example to print "hello world" using switch statement and without using
semicolon.
1. #include<stdio.h>
2. void main(){
3. switch(printf("hello world")){}
4. }
Output:
hello world
1. #include<stdio.h>
2. void main(){
3. while(!printf("hello world")){}
4. }
Output:
hello world
Assembly program in C
We can write assembly program code inside c language program. In such case, all the
assembly code must be placed inside asm{} block.
Let's see a simple assembly program code to add two numbers in c program.
1. #include<stdio.h>
2. void main() {
3. int a = 10, b = 20, c;
4.
5. asm {
6. mov ax,a
7. mov bx,b
8. add ax,bx
9. mov c,ax
10. }
11.
12. printf("c= %d",c);
13. }
Output:
c= 30
1. #include<stdio.h>
2. #define start main
3. void start() {
4. printf("Hello");
5. }
Output:
Hello
Matrix multiplication in C
Matrix multiplication in C: We can add, subtract, multiply and divide 2 matrices. To do so,
we are taking input from the user for row number, column number, first matrix elements
and second matrix elements. Then we are performing multiplication on the matrices entered
by the user.
In matrix multiplication first matrix one row element is multiplied by second matrix all
column elements.
Let's try to understand the matrix multiplication of 2*2 and 3*3 matrices by the figure
given below:
Let's see the program of matrix multiplication in C.
1. #include<stdio.h>
2. #include<conio.h>
3. main()
4. {
5. int a[10][10],b[10][10],mul[10][10],r,c,i,j,k;
6. clrscr();
7. printf("enter the number of row=");
8. scanf("%d",&r);
9. printf("enter the number of column=");
10. scanf("%d",&c);
11. printf("enter the first matrix element=\n");
12. for(i=0;i<r;i++)
13. {
14. for(j=0;j<c;j++)
15. {
16. scanf("%d",&a[i][j]);
17. }
18. }
19. printf("enter the second matrix element=\n");
20. for(i=0;i<r;i++)
21. {
22. for(j=0;j<c;j++)
23. {
24. scanf("%d",&b[i][j]);
25. }
26. }
27.
28. printf("multiply of the matrix=\n");
29. for(i=0;i<r;i++)
30. {
31. for(j=0;j<c;j++)
32. {
33. mul[i][j]=0;
34. for(k=0;k<c;k++)
35. {
36. mul[i][j]+=a[i][k]*b[k][j];
37. }
38. }
39. }
40. //for printing result
41. for(i=0;i<r;i++)
42. {
43. for(j=0;j<c;j++)
44. {
45. printf("%d\t",mul[i][j]);
46. }
47. printf("\n");
48. }
49. getch();
50. }
Output:
enter the number of row=3
enter the number of column=3
enter the first matrix element=
1 1 1
2 2 2
3 3 3
enter the second matrix element=
1 1 1
2 2 2
3 3 3
multiply of the matrix=
6 6 6
12 12 12
18 18 18
Let's try to understand the matrix multiplication of 3*3 and 3*3 matrices by the figure
given below:
C Program to
convert Decimal to Binary
Decimal to binary in C: We can convert any decimal number (base-10 (0 to 9)) into binary
number(base-2 (0 or 1)) by c program.
Decimal Number
Decimal number is a base 10 number because it ranges from 0 to 9, there are total 10 digits
between 0 to 9. Any combination of digits is decimal number such as 23, 445, 132, 0, 2 etc.
Binary Number
Binary number is a base 2 number because it is either 0 or 1. Any combination of 0 and 1 is
binary number such as 1001, 101, 11111, 101010 etc.
Let's see the some binary numbers for the decimal number.
Decimal Binary
1 0
2 10
3 11
4 100
5 101
6 110
7 111
8 1000
9 1001
10 1010
o Step 1: Divide the number by 2 through % (modulus operator) and store the
remainder in array
1. #include<stdio.h>
2. #include<conio.h>
3. main()
4. {
5. int a[10],n,i;
6. clrscr();
7. printf("Enter the number to convert: ");
8. scanf("%d",&n);
9. for(i=0;n>0;i++)
10. {
11. a[i]=n%2;
12. n=n/2;
13. }
14. printf("\nBinary of Given Number is=");
15. for(i=i-1;i>=0;i--)
16. {
17. printf("%d",a[i]);
18. }
19. getch();
20. }
Output:
1. #include<stdio.h>
2. #include<conio.h>
3. main()
4. {
5. long int n,sum=0,r;
6. clrscr();
7. printf("enter the number=");
8. scanf("%ld",&n);
9. while(n>0)
10. {
11. r=n%10;
12. sum=sum*10+r;
13. n=n/10;
14. }
15. n=sum;
16. while(n>0)
17. {
18. r=n%10;
19. switch(r)
20. {
21. case 1:
22. printf("one ");
23. break;
24. case 2:
25. printf("two ");
26. break;
27. case 3:
28. printf("three ");
29. break;
30. case 4:
31. printf("four ");
32. break;
33. case 5:
34. printf("five ");
35. break;
36. case 6:
37. printf("six ");
38. break;
39. case 7:
40. printf("seven ");
41. break;
42. case 8:
43. printf("eight ");
44. break;
45. case 9:
46. printf("nine ");
47. break;
48. case 0:
49. printf("zero ");
50. break;
51. default:
52. printf("tttt");
53. break;
54. }
55. n=n/10;
56. }
57. getch();
58. }
Output:
1. #include<stdio.h>
2. #include<conio.h>
3.
4. void main(void)
5. {
6. int ch=65;
7. int i,j,k,m;
8. clrscr();
9. for(i=1;i<=5;i++)
10. {
11. for(j=5;j>=i;j--)
12. printf(" ");
13. for(k=1;k<=i;k++)
14. printf("%c",ch++);
15. ch--;
16. for(m=1;m<i;m++)
17. printf("%c",--ch);
18. printf("\n");
19. ch=65;
20. }
21. getch();
22. }
Output:
A
ABA
ABCBA
ABCDCBA
ABCDEDCBA
1. #include<stdio.h>
2. #include<conio.h>
3. main()
4. {
5. int i,j,k,l,n;
6. clrscr();
7. printf("enter the range=");
8. scanf("%d",&n);
9. for(i=1;i<=n;i++)
10. {
11. for(j=1;j<=n-i;j++)
12. {
13. printf(" ");
14. }
15. for(k=1;k<=i;k++)
16. {
17. printf("%d",k);
18. }
19. for(l=i-1;l>=1;l--)
20. {
21. printf("%d",l);
22. }
23. printf("\n");
24. }
25. getch();
26. }
Output:
1. #include<stdio.h>
2. #include<conio.h>
3. void main(void)
4. {
5. int a=0,b=1,i,c,n,j;
6. clrscr();
7. printf("Enter the limit:");
8. scanf("%d",&n);
9. for(i=1;i<=n;i++)
10. {
11. a=0;
12. b=1;
13. printf("%d\t",b);
14. for(j=1;j<i;j++)
15. {
16. c=a+b;
17. printf("%d\t",c);
18. a=b;
19. b=c;
20.
21. }
22. printf("\n");
23. }
24. getch();
25. }
Output: