<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/'><id>tag:blogger.com,1999:blog-22017830</id><updated>2007-06-06T15:38:38.461+02:00</updated><title type='text'>C Tutorial</title><link rel='alternate' type='text/html' href='http://visualcplus.blogspot.com/'/><link rel='next' type='application/atom+xml' href='http://visualcplus.blogspot.com/feeds/posts/default?start-index=26&amp;max-results=25'/><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://visualcplus.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://visualcplus.blogspot.com/feeds/posts/default'/><author><name>Vurdlak</name><uri>http://www.blogger.com/profile/08849999795183163370</uri><email>noreply@blogger.com</email></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>36</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-22017830.post-114308487978795118</id><published>2006-03-23T04:33:00.000+01:00</published><updated>2007-01-12T12:37:07.150+01:00</updated><title type='text'>Lesson 19: C Programming Examples</title><content type='html'>&lt;span style="font-family:arial;"&gt;I’ve based this lesson on a single program example. This part of C programming tutorial has dual purpose: firstly to teach you how to apply previously learned C/C++ knowledge, second: to show you how pointers, arrays, functions and matrixes can be combined together in one single program.&lt;/span&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;u&gt;&lt;span style="font-family:Arial;font-size:130%;"&gt;&lt;/span&gt;&lt;/u&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;strong&gt;&lt;u&gt;&lt;span style="font-family:Arial;font-size:130%;"&gt;Example&lt;/span&gt;&lt;/u&gt;&lt;/strong&gt;&lt;span style="font-family:Arial;font-size:130%;"&gt;:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;font-size:130%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;font-size:130%;"&gt;Maximal number of rows and columns matrix can have is predefined. Write your own main program which reads given number of matrix’s rows and columns, and additionally reads matrix’s given elements. Main program prints:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;font-size:130%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="fullpost"&gt;&lt;ol&gt;&lt;li&gt;&lt;span style="font-family:Arial;font-size:130%;"&gt;Matrix’s elements sum (calls upon a function that calculates elements sum)&lt;/span&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;span style="font-family:Arial;font-size:130%;"&gt;Maximal value in every row of a matrix (calls upon a function that finds the biggest element in a flow)&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;span style="font-size:78%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;font-size:130%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;font-size:130%;"&gt;Matrix &lt;/span&gt;&lt;strong&gt;&lt;span style="font-family:Arial;font-size:130%;"&gt;mat &lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family:Arial;font-size:130%;"&gt;is declared in a way of two dimensional array (2D array):&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;font-size:130%;"&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;font-size:130%;"&gt;float mat[MAXROW][MAXCOL];&lt;/span&gt;&lt;/pre&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;font-size:130%;"&gt;Variables &lt;/span&gt;&lt;strong&gt;&lt;span style="font-family:Arial;font-size:130%;"&gt;nrRow &lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family:Arial;font-size:130%;"&gt;and &lt;/span&gt;&lt;strong&gt;&lt;span style="font-family:Arial;font-size:130%;"&gt;nrCol &lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family:Arial;font-size:130%;"&gt;store matrix’s dimensions provided by user. The image below shows you this in a visual way. Click on the image to enlarge it.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/5639/2020/1600/image1.jpg"&gt;&lt;img style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: pointer; TEXT-ALIGN: center" alt="" src="http://photos1.blogger.com/blogger/5639/2020/400/image1.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;font-size:78%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;font-size:130%;"&gt;Memory of a computer allocates &lt;/span&gt;&lt;strong&gt;&lt;span style="font-family:Arial;font-size:130%;"&gt;MAXROW * MAXCOL * sizeof(float) byte&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family:Arial;font-size:130%;"&gt;. &lt;/span&gt;&lt;span style="font-family:Arial;font-size:130%;"&gt;Matrix’s rows follow one after another, in a way where every next row is placed right after the previous one; and so on. Picture below describes this perfectly. Click on the image to enlarge it.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;font-size:130%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;font-size:130%;"&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/5639/2020/1600/image2.jpg"&gt;&lt;img style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: pointer; TEXT-ALIGN: center" alt="" src="http://photos1.blogger.com/blogger/5639/2020/400/image2.jpg" border="0" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;font-size:130%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;font-size:130%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;font-size:130%;"&gt;Generally speaking, for &lt;/span&gt;&lt;strong&gt;&lt;span style="font-family:Arial;font-size:130%;"&gt;mat[i][j] &lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family:Arial;font-size:130%;"&gt;– number of elements from the beginning of an array is: &lt;/span&gt;&lt;strong&gt;&lt;span style="font-family:Arial;font-size:130%;"&gt;i * MAXCOL + j&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;font-size:130%;"&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;font-size:130%;"&gt;#include &amp;lt;stdio.h&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;font-size:130%;"&gt;#define MAXROW     100&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;font-size:130%;"&gt;#define MAXCOL     100&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;font-size:78%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;font-size:85%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;font-size:130%;"&gt;float max( int len, float *p ) {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;font-size:130%;"&gt;// OR: float max( int len, float p[] )&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;font-size:130%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;font-size:130%;"&gt;   float res;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;font-size:130%;"&gt;   int i;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;font-size:130%;"&gt;&lt;br /&gt;printf("\nIn function max :");&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;font-size:130%;"&gt;   printf("\nRow’s beginning address&lt;br /&gt;         in memory : %ld", p);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;font-size:130%;"&gt;   res = p[0];&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;font-size:130%;"&gt;   for( i=1; i&amp;lt;len; i++ )&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;font-size:130%;"&gt;      if( p[i] &amp;gt; res )&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;font-size:130%;"&gt;         res = p[i];&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;font-size:130%;"&gt;   return res;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;font-size:130%;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;font-size:78%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;font-size:85%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;font-size:130%;"&gt;float sumEl(int nrRow,int nrCol,&lt;br /&gt;        int maxCol,float *mat) {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;font-size:130%;"&gt;&lt;br /&gt;int i, j;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;font-size:130%;"&gt;   float sum;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;font-size:78%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;font-size:130%;"&gt;   printf("\nIn function sumEl:");&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;font-size:130%;"&gt;   printf("\nMatrix’s beginning address&lt;br /&gt;         in memory: %ld", mat);&lt;br /&gt;printf("\nBegin. of 2nd row’s addr.&lt;br /&gt;         in mem.: %ld", &amp;mat[maxCol]); &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;font-size:130%;"&gt;   printf("\nBegin. of 3rd row’s addr.&lt;br /&gt;         in mem.: %ld", &amp;mat[2* maxCol]);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;font-size:78%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;font-size:130%;"&gt;   sum = 0.0;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;font-size:130%;"&gt;   for( i=0; i&amp;lt;nrRow; i++ )&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;font-size:130%;"&gt;      for( j=0; j&amp;lt;nrCol; j++ )&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;font-size:130%;"&gt;         sum += mat[i*maxCol + j];&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;font-size:130%;"&gt;  // or: sum += *(mat + i*maxCol + j)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;font-size:130%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;font-size:130%;"&gt;   return sum;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;font-size:130%;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;font-size:78%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;font-size:85%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;font-size:130%;"&gt;int main(void) {&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:Courier New;font-size:130%;"&gt;   int row, col, i, j;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;font-size:130%;"&gt;   float add, maxRow, mat[MAXROW][MAXCOL];&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;font-size:78%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;font-size:130%;"&gt;   printf("\nInput nr. of rows and columns:");&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;font-size:130%;"&gt;   scanf("%d %d", &amp;row, &amp;amp;col );&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;font-size:78%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;font-size:130%;"&gt;   printf("\nIn function main");&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;font-size:130%;"&gt;   printf("\nMatrix’s beginning address&lt;br /&gt;         in memory: %ld", mat);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;font-size:130%;"&gt;   printf("\nBegin. of 2nd row’s&lt;br /&gt;         addr.: %ld\n\n", &amp;mat[1][0]);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;font-size:130%;"&gt;   printf("\nBegin. of 3rd row’s&lt;br /&gt;         addr.: %ld\n\n", &amp;mat[2][0]);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;font-size:130%;"&gt;   for( i=0; i&amp;lt;row; i++ )&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;font-size:130%;"&gt;      for( j=0; j&amp;lt;col; j++ ) {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;font-size:130%;"&gt;         printf("Input element[%d,%d]:",i,j);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;font-size:130%;"&gt;         scanf("%f", &amp;mat[i][j] );&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;font-size:130%;"&gt;   }&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;font-size:78%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;font-size:85%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;font-size:130%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;font-size:130%;"&gt;   //calculates elements sum in matrix&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;font-size:130%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;font-size:130%;"&gt;   add=sumEl(row,col,MAXCOL,(float *) mat);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;font-size:130%;"&gt;   printf("\n\nSum of matrix&lt;br /&gt;           elements is %f", add );&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;font-size:78%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;font-size:85%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;font-size:130%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;font-size:130%;"&gt;   //prints maximal value of every mat. row &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;font-size:130%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;font-size:130%;"&gt;   for(i=0;i&amp;lt;row;i++) {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;font-size:130%;"&gt;      maxRow = max(col, &amp;mat[i][0]);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;font-size:130%;"&gt;        // or: max(col, mat+i*MAXCOL)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;font-size:130%;"&gt;      printf("\nBiggest element in&lt;br /&gt;            row %d is %f\n",i,maxRow);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;font-size:130%;"&gt;   }&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;font-size:130%;"&gt;}&lt;/span&gt;&lt;/pre&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;font-size:78%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;font-size:85%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-family:Arial;font-size:130%;"&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-family:Arial;font-size:130%;"&gt;Example of program’s execution:&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;span style="font-family:Arial;font-size:130%;"&gt;&lt;pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:Arial;font-size:130%;"&gt;Input nr. of rows and columns:  3  2&lt;br /&gt;&lt;br /&gt;In function main :&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;font-size:130%;"&gt;Matrix’s beginning address in memory :  1205032&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;font-size:130%;"&gt;Begin. of 2nd row’s addr.  :                      1205432&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;font-size:130%;"&gt;Begin. of &lt;/span&gt;&lt;u&gt;&lt;span style="font-family:Arial;font-size:130%;"&gt;3rd&lt;/span&gt;&lt;/u&gt;&lt;span style="font-family:Arial;font-size:130%;"&gt;  row’s addr.  :                      1205832&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;font-size:130%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;strong&gt;&lt;u&gt;&lt;span style="font-family:Courier New;font-size:130%;"&gt;&lt;br /&gt;3rd:&lt;/span&gt;&lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;font-size:130%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;font-size:130%;"&gt; 1205432     =  125032 + 1 * MAXCOL * sizeof(float)&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:130%;"&gt;                    =  125032 + 400;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;font-size:130%;"&gt; 1205832     =  125032 + 2 * MAXCOL * sizeof(float)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;font-size:130%;"&gt;                    =  125032 + 800;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;font-size:130%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;font-size:130%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;font-size:78%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;font-size:85%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;font-size:130%;"&gt;Input element [0,0]:  2&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;font-size:130%;"&gt;Input element [0,1]:  3&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;font-size:130%;"&gt;Input element [1,0]:  4&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;font-size:130%;"&gt;Input element [1,1]:  3&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;font-size:130%;"&gt;Input element [2,0]:  1&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;font-size:130%;"&gt;Input element [2,1]:  5&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;font-size:78%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;font-size:130%;"&gt;In function sumEl:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;font-size:130%;"&gt;Matrix’s beginning address in memory:  1205032&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;font-size:130%;"&gt;Begin. of 2nd row’s addr. in mem.:         1205432&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;font-size:130%;"&gt;Begin. of 3rd  row’s addr. in mem.:         1205832&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;font-size:78%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;font-size:130%;"&gt;Sum of matrix elements is 18.000000&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;font-size:130%;"&gt;In function max:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;font-size:130%;"&gt;Row’s beginning address in memory:  1205032&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;font-size:130%;"&gt;Biggest element in row 0 is 3.000000&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;font-size:130%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;font-size:130%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;font-size:130%;"&gt;In function max:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;font-size:130%;"&gt;Row’s beginning address in memory:  1205432&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;font-size:130%;"&gt;Biggest element in row 1 is 4.000000&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;font-size:78%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;font-size:130%;"&gt;In function max:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;font-size:130%;"&gt;Row’s beginning address in memory:  1205832&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;font-size:130%;"&gt;Biggest element in row 2 is 5.000000&lt;/span&gt;&lt;/pre&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;font-size:78%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;font-size:85%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;font-size:130%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;font-size:130%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;strong&gt;&lt;u&gt;&lt;span style="font-family:Arial;font-size:130%;"&gt;Example:&lt;/span&gt;&lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;&lt;span style="font-family:Arial;font-size:130%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;font-size:130%;"&gt;Write your own C function which returns &lt;/span&gt;&lt;strong&gt;&lt;span style="font-family:Arial;font-size:130%;"&gt;flow &lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family:Arial;font-size:130%;"&gt;of matrix row’s maximal values.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;font-size:130%;"&gt;&lt;pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;br /&gt;&lt;span style="font-family:Courier New;font-size:130%;"&gt;void maxFlow(float *mat,int nrRow,int nrCol,&lt;br /&gt;         int maxCol,float *flow) {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;font-size:130%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;font-size:130%;"&gt;//OR: void maxFlow(float mat[], int nrRow,&lt;br /&gt;     int nrCol,int maxCol,float flow[])&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;font-size:130%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;font-size:130%;"&gt;   int i, j;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;font-size:130%;"&gt;   for (i = 0; i &amp;lt; nrRow; i++) {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;font-size:130%;"&gt;      flow[i] = mat[i * maxCol];&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;font-size:130%;"&gt;      for(j = 1; j &amp;lt; nrCol; j++)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;font-size:130%;"&gt;         if (mat[i*maxCol+j] &amp;gt; flow[i])&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;font-size:130%;"&gt;            flow[i]=mat[i*maxCol+j];&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;font-size:130%;"&gt;   }&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;font-size:130%;"&gt;}&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;font-size:85%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;</content><link rel='alternate' type='text/html' href='http://visualcplus.blogspot.com/2006/03/lesson-19-c-programming-examples.html' title='Lesson 19: C Programming Examples'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22017830&amp;postID=114308487978795118' title='11 Comments'/><link rel='replies' type='application/atom+xml' href='http://visualcplus.blogspot.com/feeds/114308487978795118/comments/default' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://visualcplus.blogspot.com/feeds/posts/default/114308487978795118'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22017830/posts/default/114308487978795118'/><author><name>Vurdlak</name><uri>http://www.blogger.com/profile/08849999795183163370</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-22017830.post-114279985252045694</id><published>2006-03-19T21:23:00.000+01:00</published><updated>2006-10-03T07:48:05.996+02:00</updated><title type='text'>Lesson 18: Pointers and Stacks in C</title><content type='html'>&lt;span style="font-family:arial;"&gt;Today's lesson goes more into details about pointers and their usage as function's arguments. Additional tutorial about stacks in C and C++ is provided. Be sure to read this lesson carefully in order to understand it, since pointers are most important part of C programming language. &lt;/span&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;&lt;br /&gt;&lt;br /&gt;Transferring Argument’s Address into a Function (&lt;/span&gt;&lt;em&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;call by reference&lt;/span&gt;&lt;/em&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;)&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;Write your own function that changes polar coordinates into Cartesian coordinates, and show how this function is called upon from main program.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;&lt;pre&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;#include &amp;lt;math.h&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;void cart(float r, float fi, float *x, float *y) {&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;  *x = r*cos(fi); // x &lt;/span&gt;&lt;strong&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;address&lt;/span&gt;&lt;/strong&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;:&lt;/span&gt;&lt;span style="font-size:130%;"&gt;1244956,&lt;/span&gt;&lt;strong&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;value&lt;/span&gt;&lt;/strong&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;:1245052&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;                  //*x &lt;/span&gt;&lt;strong&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;address&lt;/span&gt;&lt;/strong&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;:&lt;/span&gt;&lt;span style="font-size:130%;"&gt;1245052,&lt;/span&gt;&lt;strong&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;value&lt;/span&gt;&lt;/strong&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;:1.755165&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:78%;"  &gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;  *y = r*sin(fi); // y &lt;/span&gt;&lt;strong&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;address&lt;/span&gt;&lt;/strong&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;:&lt;/span&gt;&lt;span style="font-size:130%;"&gt;1244960,&lt;/span&gt;&lt;strong&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;value&lt;/span&gt;&lt;/strong&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;:1245048&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;                  //*y &lt;/span&gt;&lt;strong&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;address&lt;/span&gt;&lt;/strong&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;:&lt;/span&gt;&lt;span style="font-size:130%;"&gt;1245048,&lt;/span&gt;&lt;strong&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;value&lt;/span&gt;&lt;/strong&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;:0.958851&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:78%;"  &gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;}&lt;/span&gt;&lt;/pre&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:78%;"  &gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;Main program slice:&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;&lt;pre&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;float x, y;            // x &lt;/span&gt;&lt;strong&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;address&lt;/span&gt;&lt;/strong&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;:&lt;/span&gt;&lt;span style="font-size:130%;"&gt;1245052,&lt;/span&gt;&lt;strong&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;value&lt;/span&gt;&lt;/strong&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;:?&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;                       // y &lt;/span&gt;&lt;strong&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;address&lt;/span&gt;&lt;/strong&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;:&lt;/span&gt;&lt;span style="font-size:130%;"&gt;1245048,&lt;/span&gt;&lt;strong&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;value&lt;/span&gt;&lt;/strong&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;:?&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;float fi = 0.5, r = 2; //fi &lt;/span&gt;&lt;strong&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;address&lt;/span&gt;&lt;/strong&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;:&lt;/span&gt;&lt;span style="font-size:130%;"&gt;1245044,&lt;/span&gt;&lt;strong&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;value&lt;/span&gt;&lt;/strong&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;:0.5&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;                       // r &lt;/span&gt;&lt;strong&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;address&lt;/span&gt;&lt;/strong&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;:&lt;/span&gt;&lt;span style="font-size:130%;"&gt;1245040,&lt;/span&gt;&lt;strong&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;value&lt;/span&gt;&lt;/strong&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;:2&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;&lt;/span&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;cart(r, fi, &amp;x, &amp;amp;y);&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:85%;"  &gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;"&gt;printf("x=%f y=%f",x,y);&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;               // x &lt;/span&gt;&lt;strong&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;address&lt;/span&gt;&lt;/strong&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;:&lt;/span&gt;&lt;span style="font-size:130%;"&gt;1245052, &lt;/span&gt;&lt;strong&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;value&lt;/span&gt;&lt;/strong&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;:1.755165&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;               // y &lt;/span&gt;&lt;strong&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;address&lt;/span&gt;&lt;/strong&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;:&lt;/span&gt;&lt;span style="font-size:130%;"&gt;1245048, &lt;/span&gt;&lt;strong&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;value&lt;/span&gt;&lt;/strong&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;:0.958851&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/span&gt;&lt;br /&gt;&lt;strong&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;u&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;&lt;br /&gt;&lt;br /&gt;Question&lt;/span&gt;&lt;/u&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;: &lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;What would happen if the function looked like this?&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;&lt;pre&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;void cart(float r, float fi, float *x, float *y) {&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;   x = 10000;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;  *x = r * sin(fi);&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;  *y = r * cos(fi);&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;}&lt;/span&gt;&lt;/pre&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;u&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;Important&lt;/span&gt;&lt;/u&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;: &lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;Function is able to return single value through its “&lt;/span&gt;&lt;strong&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;return&lt;/span&gt;&lt;/strong&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;” order. In order to return more values (in this case &lt;/span&gt;&lt;strong&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;x &lt;/span&gt;&lt;/strong&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;&amp; &lt;/span&gt;&lt;strong&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;y&lt;/span&gt;&lt;/strong&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;), we can return them through arguments (&lt;/span&gt;&lt;em&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;Call by Reference&lt;/span&gt;&lt;/em&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;).&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;u&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;&lt;br /&gt;Example&lt;/span&gt;&lt;/u&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;:&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;u&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;&lt;/span&gt;&lt;/u&gt;&lt;br /&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;Write your own function that returns numerator and denominator of a fraction. This fraction is a sum of two fractions, whose two numerators and two denominators are given by user. Function also shortens the fraction if possible, before returning values. Augends numerators and denominators are integers.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;(Fraction example: 5/9, Numerator: 5, Denominator: 9)&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;&lt;pre&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;void addFractions(int nrator1,int denom1,&lt;br /&gt;                int nrator2,int denom2,&lt;br /&gt;                int *nratorSum,int *denomSum) {&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:78%;"  &gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;   int min, i;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:78%;"  &gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;   *nratorSum = nrator1*denom2+denom1*nrator2;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;   *denomSum = denom1*denom2;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;   min=(*nratorSum&amp;lt;*denomSum) ? *nratorSum : *denomSum;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;   //testing if numerator and denominator&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;   //are multiples:&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;   if((*nratorSum % min == 0)&amp;&amp;amp;(*denomSum % min==0)){&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;      *nratorSum /= min;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;      *denomSum /= min;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;   } else {&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;&lt;br /&gt;  //tests if numerator and denominator are &lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;   //dividable with same number&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;      i = min / 2;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;      while ( i &amp;gt;= 2) {&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;       if ((*nratorSum%i == 0)&amp;&amp;amp;(*denomSum%i == 0))&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;            *nratorSum /= i;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;            *denomSum /= i;&lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;       --i;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;      }     &lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;   }&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;}&lt;/span&gt;&lt;/pre&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;Main program’s slice (calls function addFractions):&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;&lt;pre&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;int nrator1, denom1, nrator2, denom2,&lt;br /&gt;int nratorSum, denomSum;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;...&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;addFractions(nrator1, denom1, nrator2,&lt;br /&gt;            denom2, &amp;nratorSum, &amp;amp;denomSum);&lt;/span&gt;&lt;/pre&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:85%;"  &gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:85%;"  &gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;Function that finds biggest element in real number’s array&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;/strong&gt;&lt;br /&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;Why is flow’s length “&lt;/span&gt;&lt;strong&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;length&lt;/span&gt;&lt;/strong&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;” transferred as function’s argument?&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;&lt;pre&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;float max(int length, float *p) {&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;// OR: float max(int length, float p[]) {&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;   float res; int i;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:78%;"  &gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;   res = p[0];&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;   for (i = 1; i &amp;lt; length; i++)&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;      if (p[i] &amp;gt; res)&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;         res = p[i];&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;         return res;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;&lt;br /&gt;}&lt;/span&gt;&lt;/pre&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:Arial;font-size:130%;"  &gt;Same problem - solved using pointer’s arithmetic:&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;&lt;pre&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;float max(int length, float *p) {&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;&lt;br /&gt;float res;&lt;br /&gt;int i;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:78%;"  &gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;   res = *p;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;   p++;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;   for (i = 1; i &amp;lt; length; i++, p++)&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;      if (*p &amp;gt; res)&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;         res = *p;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;   return res;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;&lt;br /&gt;}&lt;/span&gt;&lt;/pre&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:85%;"  &gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:85%;"  &gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;&lt;/span&gt;&lt;br /&gt;&lt;strong&gt;&lt;u&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;Important&lt;/span&gt;&lt;/u&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;:&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;Pointer &lt;/span&gt;&lt;strong&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;p           &lt;/span&gt;&lt;/strong&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;stores address of the first array element. However, if we shift pointer &lt;/span&gt;&lt;strong&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;p &lt;/span&gt;&lt;/strong&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;inside the function, address of the first array’s element won’t be changed, neither will influent our main program (that calls the function).&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;&lt;/span&gt;&lt;br /&gt;&lt;strong&gt;&lt;u&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;&lt;/span&gt;&lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;u&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;Example&lt;/span&gt;&lt;/u&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;:&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;Exam’s results are transferred into a function in a way of array composed of integers (integers represent grades). This array (&lt;/span&gt;&lt;strong&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;flow&lt;/span&gt;&lt;/strong&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;), is consisted of grades 1, 2, 3, 4 and 5. Number of array’s elements is &lt;/span&gt;&lt;strong&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;nrGrades&lt;/span&gt;&lt;/strong&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;. Write your own function that returns most common grade.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;&lt;pre&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;int commonGrade(int *flow, int nrGrades) {&lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;&lt;br /&gt;&lt;br /&gt;  int grade[5] = {0}, commonGrade = 0, i;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:78%;"  &gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;   for(i = 0; i &amp;lt; nrGrades; i++){&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;&lt;br /&gt;  grade[flow[i] -1]++;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;&lt;br /&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:85%;"  &gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;   for(i = 1; i &amp;lt; 5; i++){&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;&lt;br /&gt;  if(grade[i] &amp;gt; grade[commonGrade]) {&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;&lt;br /&gt;     commonGrade = i;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;      }&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;   }&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:85%;"  &gt;     &lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;   return commonGrade + 1;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;}&lt;/span&gt;&lt;/pre&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:85%;"  &gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:85%;"  &gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;&lt;/span&gt;&lt;br /&gt;&lt;strong&gt;&lt;/strong&gt;&lt;strong&gt;&lt;u&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;Example&lt;/span&gt;&lt;/u&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;:&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;Write your own function that shifts array &lt;/span&gt;&lt;strong&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;p &lt;/span&gt;&lt;/strong&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;(given, integer type) for a number of places. Array &lt;/span&gt;&lt;strong&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;p &lt;/span&gt;&lt;/strong&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;is consisted of &lt;/span&gt;&lt;strong&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;N &lt;/span&gt;&lt;/strong&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;number of elements, and will be shifted left for negative value, or shifted right for positive value (&lt;/span&gt;&lt;strong&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;adjustment &amp;lt; N&lt;/span&gt;&lt;/strong&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;). Empty places are filled with zeroes.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;&lt;br /&gt;Example of shifting:&lt;br /&gt;&lt;br /&gt;shift = 2 and array[10 40 50 60 12]:&lt;br /&gt;Before shifting:          [10 40 50 60 12]&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;Shifted array:       [ 0 0 10 40 50]&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Arial;font-size:78%;"  &gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;/span&gt;&lt;br /&gt;&lt;strong&gt;&lt;u&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;&lt;/span&gt;&lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;u&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;Solution&lt;/span&gt;&lt;/u&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;:&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;&lt;pre&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;void shiftArray(int *p, int N, int shift) {&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;   int i;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;&lt;br /&gt;&lt;br /&gt;  // if shifting right&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;&lt;br /&gt;  if (shift &amp;gt; 0 &amp;&amp;amp; shift &amp;lt; N) {&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;&lt;br /&gt;     for (i = N - 1 - shift; i &amp;gt;= 0; i --)&lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;&lt;br /&gt;        p[i + shift] = p[i];&lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;&lt;br /&gt;     for (i = shift - 1; i &amp;gt;= 0; i --)&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;         p[i] = 0;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;   }&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;   // if shifting left&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;   else if (shift &amp;lt; 0 &amp;&amp;amp; -shift &amp;lt; N) {&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;&lt;br /&gt;     shift = -shift;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;      for (i = 0; i &amp;lt;= N - 1 - shift; i++)&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;         p[i] = p[i + shift];&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;      for (i = N - shift; i &amp;lt; N; i++)&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;         p[i] = 0;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;   }&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;}&lt;/span&gt;&lt;/pre&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:85%;"  &gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:85%;"  &gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;&lt;/span&gt;&lt;br /&gt;&lt;strong&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;Stack Data Storage with Function call&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;&lt;br /&gt;Every new element is stored on top of the stack. However, compilers often tend to assign &lt;/span&gt;&lt;strong&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;lower &lt;/span&gt;&lt;/strong&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;address to stack’s top, then to stack’s bottom. This results data being stored downwards (from bottom of the stack to &lt;/span&gt;&lt;strong&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;lower &lt;/span&gt;&lt;/strong&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;memory addresses).&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Arial;font-size:78%;"  &gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;Following data is stored to a stack (from higher addresses to lower ones):&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;- function’s arguments (highest address is assigned to ultimately-right&lt;br /&gt; placed argument)&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;- returning address&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;- local variables (highest address is assigned to first declared variable)&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Arial;font-size:78%;"  &gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;/span&gt;&lt;br /&gt;&lt;strong&gt;&lt;u&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;&lt;/span&gt;&lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;u&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;&lt;/span&gt;&lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;u&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;Important&lt;/span&gt;&lt;/u&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;:&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;While transferring data to a stack, frames of the stack will be ignored in this tutorial (processor registers). However, some compilers also tend to store these to a stack.&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;For how many bytes does the stack maximally increase, while executing this block:&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;&lt;pre&gt;&lt;br /&gt; ...&lt;br /&gt;  ...&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;   y =     f1(10);&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;   ...&lt;/span&gt;&lt;/pre&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:78%;"  &gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;if the following functions are defined:&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;&lt;pre&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;long f2(float a, float b) {&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;&lt;br /&gt;  return a + b;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;&lt;br /&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:78%;"  &gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:85%;"  &gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;int f1(char x) {&lt;br /&gt;&lt;br /&gt;  int i = 4, y;&lt;br /&gt;  y = x + 1;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;   return i * f2(x, y);&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;}&lt;/span&gt;&lt;/pre&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;&lt;pre&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;f1 &lt;/span&gt;&lt;/strong&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;call:     &lt;/span&gt;&lt;strong&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;                           f2 &lt;/span&gt;&lt;/strong&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;call:                                    STACK’S TOP&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;                                                                                         (&lt;/span&gt;&lt;strong&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;lower &lt;/span&gt;&lt;/strong&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;addresses)&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;                                           returning address 2                &lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;                                           10 (float)                                              ^&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;                                           11 (float)                                             /  \&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;11 (int)                               11 (int)                                               /    \&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;4 (int)                                  4 (int)                                               / __ \&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;returning address 1        returning address 1               &lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;10 (char)                            10 (char)                              STACK’S BOTTOM&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;                                                                                         (&lt;/span&gt;&lt;strong&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;higher &lt;/span&gt;&lt;/strong&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;addresses)&lt;/span&gt;&lt;/pre&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: normal;font-family:Arial;font-size:130%;"  &gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Returning address is data type &lt;/span&gt;&lt;strong style="font-weight: bold;"&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;long&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-weight: normal;font-family:Arial;font-size:130%;"  &gt;.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: normal;font-family:Arial;font-size:130%;"  &gt;By calling function &lt;/span&gt;&lt;strong style="font-weight: bold;"&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;f2&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-weight: normal;font-family:Arial;font-size:130%;"  &gt;, stack has increased to its maximal size:&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;&lt;pre&gt;    &lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;       sizeof(char) &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;+      &lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;sizeof(&lt;/span&gt;&lt;strong&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;returning address 1&lt;/span&gt;&lt;/strong&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;) &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;+  &lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;2 * sizeof(int) &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;+  &lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;2 * sizeof(float) &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;+      &lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;sizeof(&lt;/span&gt;&lt;strong&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;returning address 2&lt;/span&gt;&lt;/strong&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;)&lt;br /&gt; &lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;--------------&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;=      25 byte&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;Technorati Tags: &lt;/span&gt;&lt;a style="font-family: arial;" href="http://technorati.com/tag/Pointer" rel="tag"&gt;Pointer&lt;/a&gt;&lt;span style="font-family:arial;"&gt;, &lt;/span&gt;&lt;a style="font-family: arial;" href="http://technorati.com/tag/Argument" rel="tag"&gt;Argument&lt;/a&gt;&lt;span style="font-family:arial;"&gt;, &lt;/span&gt;&lt;a style="font-family: arial;" href="http://technorati.com/tag/Array" rel="tag"&gt;Array&lt;/a&gt;&lt;span style="font-family:arial;"&gt;, &lt;/span&gt;&lt;a style="font-family: arial;" href="http://technorati.com/tag/Stack" rel="tag"&gt;Stack&lt;/a&gt;&lt;span style="font-family:arial;"&gt;, &lt;/span&gt;&lt;a style="font-family: arial;" href="http://technorati.com/tag/Program" rel="tag"&gt;Program&lt;/a&gt;&lt;span style="font-family:arial;"&gt;, &lt;/span&gt;&lt;a style="font-family: arial;" href="http://technorati.com/tag/Stacks" rel="tag"&gt;Stacks&lt;/a&gt;&lt;span style="font-family:arial;"&gt;, &lt;/span&gt;&lt;a style="font-family: arial;" href="http://technorati.com/tag/FUnction" rel="tag"&gt;Function&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;</content><link rel='alternate' type='text/html' href='http://visualcplus.blogspot.com/2006/03/lesson-18-pointers-and-stacks-in-c.html' title='Lesson 18: Pointers and Stacks in C'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22017830&amp;postID=114279985252045694' title='3 Comments'/><link rel='replies' type='application/atom+xml' href='http://visualcplus.blogspot.com/feeds/114279985252045694/comments/default' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://visualcplus.blogspot.com/feeds/posts/default/114279985252045694'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22017830/posts/default/114279985252045694'/><author><name>Vurdlak</name><uri>http://www.blogger.com/profile/08849999795183163370</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-22017830.post-114244909874600582</id><published>2006-03-15T19:58:00.000+01:00</published><updated>2006-12-20T08:18:04.836+01:00</updated><title type='text'>Lesson 17: Pointers in C</title><content type='html'>&lt;span style="font-family:arial;"&gt;After three days of waiting, C++ Maniac brings you another interesting lesson. This one is labeled no. 17, and I think moment has come when I can proudly say we have crossed a half-way of my complete C Tutorial; at least first part of it, “C Programming In General”. This Lesson is about Pointers and their useful implementation in Your future C programs. Let’s start…&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;u&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;Important:&lt;/span&gt;&lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;Examples are translated using &lt;/span&gt;&lt;em&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;Microsoft Visual C++ &lt;/span&gt;&lt;/em&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;compiler.&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Arial;font-size:78%;"  &gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;/span&gt;&lt;br /&gt;&lt;strong&gt;&lt;u&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;&lt;/span&gt;&lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;u&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;Example:&lt;/span&gt;&lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;&lt;u&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;&lt;/span&gt;&lt;/u&gt;&lt;br /&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;What will be printed after execution of a following program block?&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;&lt;pre&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;int a = 5;  //a &lt;/span&gt;&lt;strong&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;address&lt;/span&gt;&lt;/strong&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;:&lt;/span&gt;&lt;span style="font-size:130%;"&gt;1245052, &lt;/span&gt;&lt;strong&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;value&lt;/span&gt;&lt;/strong&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;:&lt;/span&gt;&lt;span style="font-size:130%;"&gt;5&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:78%;"  &gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:85%;"  &gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;int *b;     //a &lt;/span&gt;&lt;strong&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;address&lt;/span&gt;&lt;/strong&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;:&lt;/span&gt;&lt;span style="font-size:130%;"&gt;1245052, &lt;/span&gt;&lt;strong&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;value&lt;/span&gt;&lt;/strong&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;:&lt;/span&gt;&lt;span style="font-size:130%;"&gt;5&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;            //b &lt;/span&gt;&lt;strong&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;address&lt;/span&gt;&lt;/strong&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;:&lt;/span&gt;&lt;span style="font-size:130%;"&gt;1245048, &lt;/span&gt;&lt;strong&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;value&lt;/span&gt;&lt;/strong&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;:&lt;/span&gt;&lt;span style="font-size:130%;"&gt;?&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:85%;"  &gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt; b = &amp;a;    //a &lt;/span&gt;&lt;strong&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;address&lt;/span&gt;&lt;/strong&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;:&lt;/span&gt;&lt;span style="font-size:130%;"&gt;1245052, &lt;/span&gt;&lt;strong&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;value&lt;/span&gt;&lt;/strong&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;:&lt;/span&gt;&lt;span style="font-size:130%;"&gt;5&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;            //b &lt;/span&gt;&lt;strong&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;address&lt;/span&gt;&lt;/strong&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;:&lt;/span&gt;&lt;span style="font-size:130%;"&gt;1245048, &lt;/span&gt;&lt;strong&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;value&lt;/span&gt;&lt;/strong&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;:&lt;/span&gt;&lt;span style="font-size:130%;"&gt;1245052&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;*b = 6;     //a &lt;/span&gt;&lt;strong&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;address&lt;/span&gt;&lt;/strong&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;:&lt;/span&gt;&lt;span style="font-size:130%;"&gt;1245052, &lt;/span&gt;&lt;strong&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;value&lt;/span&gt;&lt;/strong&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;:&lt;/span&gt;&lt;span style="font-size:130%;"&gt;6&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;            //b &lt;/span&gt;&lt;strong&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;address&lt;/span&gt;&lt;/strong&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;:&lt;/span&gt;&lt;span style="font-size:130%;"&gt;1245048, &lt;/span&gt;&lt;strong&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;value&lt;/span&gt;&lt;/strong&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;:&lt;/span&gt;&lt;span style="font-size:130%;"&gt;1245052&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:85%;"  &gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;printf("a = %d *b = %d\n", a, *b);&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;printf("a = %d b = %ld\n", a, b);&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;printf("&amp;a = %ld &amp;amp;b = %ld\n", &amp;a, &amp;amp;b);&lt;/span&gt;&lt;/pre&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;&lt;/span&gt;&lt;br /&gt;&lt;strong&gt;&lt;u&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;&lt;/span&gt;&lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;u&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;Result:&lt;/span&gt;&lt;/u&gt;&lt;/strong&gt;&lt;strong&gt;&lt;/strong&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;&lt;pre&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;a = 6 *b = 6&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;a = 6  b = 1245052&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;&amp;a = 1245052 &amp;amp;b = 1245048&lt;/span&gt;&lt;/pre&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:78%;"  &gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:85%;"  &gt;&lt;/span&gt;&lt;br /&gt;&lt;strong&gt;&lt;u&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;Important:&lt;/span&gt;&lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;Value that is &lt;/span&gt;&lt;em&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;pointed &lt;/span&gt;&lt;/em&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;by variable b is on the same address (&lt;/span&gt;&lt;strong&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;b = &amp;a&lt;/span&gt;&lt;/strong&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;) as the value &lt;/span&gt;&lt;em&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;assigned &lt;/span&gt;&lt;/em&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;to variable &lt;/span&gt;&lt;strong&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;a&lt;/span&gt;&lt;/strong&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;What would happen if we left out this line: &lt;/span&gt;&lt;strong&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;b = &amp;amp;a; &lt;/span&gt;&lt;/strong&gt;&lt;span style="font-size:130%;"&gt;?&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:78%;"  &gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:85%;"  &gt;&lt;/span&gt;&lt;br /&gt;&lt;strong&gt;&lt;u&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;&lt;/span&gt;&lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;u&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;Result:&lt;/span&gt;&lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;&lt;u&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;&lt;/span&gt;&lt;/u&gt;&lt;br /&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;Before assigning value to it, pointer &lt;/span&gt;&lt;strong&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;b &lt;/span&gt;&lt;/strong&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;points to undefined address. This makes it possible for program to store value &lt;/span&gt;&lt;strong&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;6 &lt;/span&gt;&lt;/strong&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;to an address previously reserved for some other variable or code. This would result in an unexpected behavior or cause an error in program’s execution (because of unauthorized access to memory’s section). &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;&lt;/span&gt;&lt;br /&gt;&lt;strong&gt;&lt;u&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;&lt;/span&gt;&lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;u&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;Typical Mistakes:&lt;/span&gt;&lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;&lt;pre&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;scanf(“%d", n);&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;printf(“%d", &amp;n);&lt;/span&gt;&lt;/pre&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:85%;"  &gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;Connection between Pointers and Arrays:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;Any declared array’s name can also be used as a pointer. Any pointer can also be used as an array.&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Arial;font-size:78%;"  &gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;What will be printed as a result of following program block?&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;&lt;pre&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;int x[] = {0, 1, 2};   //x[0] &lt;/span&gt;&lt;strong&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;address&lt;/span&gt;&lt;/strong&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;:&lt;/span&gt;&lt;span style="font-size:130%;"&gt;1245044, &lt;/span&gt;&lt;strong&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;value&lt;/span&gt;&lt;/strong&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;:0&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;                       //x[1] &lt;/span&gt;&lt;strong&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;address&lt;/span&gt;&lt;/strong&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;:&lt;/span&gt;&lt;span style="font-size:130%;"&gt;1245048, &lt;/span&gt;&lt;strong&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;value&lt;/span&gt;&lt;/strong&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;:1&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;                       //x[2] &lt;/span&gt;&lt;strong&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;address&lt;/span&gt;&lt;/strong&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;:&lt;/span&gt;&lt;span style="font-size:130%;"&gt;1245052, &lt;/span&gt;&lt;strong&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;value&lt;/span&gt;&lt;/strong&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;:2&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;printf("&amp;x[0] = %ld x[0] = %d\n", &amp;amp;x[0], x[0]); // 1&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;printf("&amp;x[1] = %ld x[1] = %d\n", &amp;amp;x[1], x[1]); // 2&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;printf("&amp;x[2] = %ld x[2] = %d\n", &amp;amp;x[2], x[2]); // 3&lt;/span&gt;&lt;/pre&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:78%;"  &gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:85%;"  &gt;&lt;/span&gt;&lt;br /&gt;&lt;strong&gt;&lt;u&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;&lt;/span&gt;&lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;u&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;Result:&lt;/span&gt;&lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;&lt;pre&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;&amp;x[0] = 1245044 x[0] = 0&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;&amp;amp;x[1] = 1245048 x[1] = 1&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;&amp;x[2] = 1245052 x[2] = 2&lt;/span&gt;&lt;/pre&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:78%;"  &gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:85%;"  &gt;&lt;/span&gt;&lt;br /&gt;&lt;strong&gt;&lt;/strong&gt;&lt;strong&gt;&lt;u&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;Important:&lt;/span&gt;&lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;Printings in an upper block could’ve been substituted with following lines:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;&lt;pre&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;printf("x = %ld *x = %d\n", x, *x);                   // 1&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;printf("(x + 1) = %ld *(x+1) = %d\n", x + 1, *(x+1)); // 2&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;printf("(x + 2) = %ld *(x+2) = %d\n", x + 2, *(x+2)); // 3&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:78%;"  &gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;because these following lines are equivalent:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;&lt;pre&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;*x      &amp;lt;=&amp;gt;  x[0]     x    &amp;lt;=&amp;gt;  &amp;x[0]&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;*(x+1)  &amp;lt;=&amp;gt;  x[1]     x+1  &amp;lt;=&amp;gt;  &amp;x[1]&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;*(x+2)  &amp;lt;=&amp;gt;  x[2]     x+2  &amp;lt;=&amp;gt;  &amp;x[2]&lt;/span&gt;&lt;/pre&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:78%;"  &gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;Array’s name (in upper example: &lt;/span&gt;&lt;strong&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;x&lt;/span&gt;&lt;/strong&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;) represents pointer to null member of an array. Notation &lt;/span&gt;&lt;strong&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;x + 1 &lt;/span&gt;&lt;/strong&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;represents pointer to first member of an array, whose distance from null member is: &lt;/span&gt;&lt;strong&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;1 * sizeof(int)&lt;/span&gt;&lt;/strong&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;. In a same way, &lt;/span&gt;&lt;strong&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;x + 2 &lt;/span&gt;&lt;/strong&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;represents pointer to second member of an array, whose distance from null member is: &lt;/span&gt;&lt;strong&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;&lt;br /&gt;2 * sizeof(int)&lt;/span&gt;&lt;/strong&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;&lt;/span&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;Array’s Name as Pointer’s Constant:&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;/strong&gt;&lt;br /&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;When compiling this program block:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;&lt;pre&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;int a[10], b[10];&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;a = b;&lt;/span&gt;&lt;/pre&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;error is reported. Array’s name (&lt;/span&gt;&lt;strong&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;a&lt;/span&gt;&lt;/strong&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;) is representing pointer’s constant in this example, and because of that we aren’t able to modify this pointer’s value.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;Connection between Pointers and Array’s:&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;Assigning array’s address to pointer (which is equivalent to assigning address of first array’s element to pointer) can be executed in two ways:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;&lt;pre&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;int *p, a[10];&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;p = a;          // first solution&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;p = &amp;a[0];      // second solution&lt;/span&gt;&lt;/pre&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:85%;"  &gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:85%;"  &gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;Pointer’s Arithmetic:&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;What will be printed after execution of a following C program block?&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;&lt;pre&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;int x[] = {1, 2, 3, 4};   //x[0] &lt;/span&gt;&lt;strong&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;address&lt;/span&gt;&lt;/strong&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;:&lt;/span&gt;&lt;span style="font-size:130%;"&gt;1245040, &lt;/span&gt;&lt;strong&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;value&lt;/span&gt;&lt;/strong&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;:1&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;                          //x[1] &lt;/span&gt;&lt;strong&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;address&lt;/span&gt;&lt;/strong&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;:&lt;/span&gt;&lt;span style="font-size:130%;"&gt;1245044, &lt;/span&gt;&lt;strong&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;value&lt;/span&gt;&lt;/strong&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;:2&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;                          //x[2] &lt;/span&gt;&lt;strong&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;address&lt;/span&gt;&lt;/strong&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;:&lt;/span&gt;&lt;span style="font-size:130%;"&gt;1245048, &lt;/span&gt;&lt;strong&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;value&lt;/span&gt;&lt;/strong&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;:3&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;                          //x[3] &lt;/span&gt;&lt;strong&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;address&lt;/span&gt;&lt;/strong&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;:&lt;/span&gt;&lt;span style="font-size:130%;"&gt;1245052, &lt;/span&gt;&lt;strong&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;value&lt;/span&gt;&lt;/strong&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;:4&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:78%;"  &gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:78%;"  &gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:85%;"  &gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;int *p = &amp;x[2];       //p &lt;/span&gt;&lt;strong&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;address&lt;/span&gt;&lt;/strong&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;:&lt;/span&gt;&lt;span style="font-size:130%;"&gt;1245036, &lt;/span&gt;&lt;strong&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;value&lt;/span&gt;&lt;/strong&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;:1245048&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:78%;"  &gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;int *q = &amp;x[1];       //q &lt;/span&gt;&lt;strong&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;address&lt;/span&gt;&lt;/strong&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;:&lt;/span&gt;&lt;span style="font-size:130%;"&gt;1245032, &lt;/span&gt;&lt;strong&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;value&lt;/span&gt;&lt;/strong&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;:1245044&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:78%;"  &gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;int *r = ++q;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;                      //r &lt;/span&gt;&lt;strong&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;address&lt;/span&gt;&lt;/strong&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;:&lt;/span&gt;&lt;span style="font-size:130%;"&gt;1245028, &lt;/span&gt;&lt;strong&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;value&lt;/span&gt;&lt;/strong&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;:1245048&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;                      //q &lt;/span&gt;&lt;strong&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;address&lt;/span&gt;&lt;/strong&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;:&lt;/span&gt;&lt;span style="font-size:130%;"&gt;1245032, &lt;/span&gt;&lt;strong&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;value&lt;/span&gt;&lt;/strong&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;:1245048&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:85%;"  &gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;printf("(p + 1) = %d *(p + 1) = %d\n", (p + 1), *(p + 1));&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;printf("(p - 1) = %d *(p - 1) = %d\n", (p - 1), *(p - 1));&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;printf("q = %d *q = %d\n", q, *q);&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;printf("r = %d *r = %d\n", r, *r);&lt;/span&gt;&lt;/pre&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;&lt;/span&gt;&lt;br /&gt;&lt;strong&gt;&lt;u&gt;&lt;span style=";font-family:Arial;font-size:130%;"  &gt;Result:&lt;/span&gt;&lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;&lt;pre&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;(p + 1) = 1245052 *(p + 1) = 4&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;(p - 1) = 1245044 *(p - 1) = 2&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt; q = 1245048 *q = 3&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt; r = 1245048 *r = 3&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;Technorati Tags: &lt;/span&gt;&lt;a style="font-family: arial;" href="http://technorati.com/tag/Pointer" rel="tag"&gt;Pointer&lt;/a&gt;&lt;span style="font-family:arial;"&gt;, &lt;/span&gt;&lt;a style="font-family: arial;" href="http://technorati.com/tag/C++" rel="tag"&gt;C++&lt;/a&gt;&lt;span style="font-family:arial;"&gt;, &lt;/span&gt;&lt;a style="font-family: arial;" href="http://technorati.com/tag/Array" rel="tag"&gt;Array&lt;/a&gt;&lt;span style="font-family:arial;"&gt;, &lt;/span&gt;&lt;a style="font-family: arial;" href="http://technorati.com/tag/Assigning" rel="tag"&gt;Assigning&lt;/a&gt;&lt;span style="font-family:arial;"&gt;, &lt;/span&gt;&lt;a style="font-family: arial;" href="http://technorati.com/tag/Program" rel="tag"&gt;Program&lt;/a&gt;&lt;span style="font-family:arial;"&gt;, &lt;/span&gt;&lt;a style="font-family: arial;" href="http://technorati.com/tag/Programming" rel="tag"&gt;Programming&lt;/a&gt;&lt;span style="font-family:arial;"&gt;, &lt;/span&gt;&lt;a style="font-family: arial;" href="http://technorati.com/tag/Tutorial" rel="tag"&gt;Tutorial&lt;/a&gt;&lt;/span&gt;</content><link rel='alternate' type='text/html' href='http://visualcplus.blogspot.com/2006/03/lesson-17-pointers-in-c.html' title='Lesson 17: Pointers in C'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22017830&amp;postID=114244909874600582' title='1 Comments'/><link rel='replies' type='application/atom+xml' href='http://visualcplus.blogspot.com/feeds/114244909874600582/comments/default' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://visualcplus.blogspot.com/feeds/posts/default/114244909874600582'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22017830/posts/default/114244909874600582'/><author><name>Vurdlak</name><uri>http://www.blogger.com/profile/08849999795183163370</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-22017830.post-114212495410706810</id><published>2006-03-12T01:54:00.000+01:00</published><updated>2006-11-30T03:13:57.176+01:00</updated><title type='text'>Lesson 16: Functions in C</title><content type='html'>&lt;span style="font-family:arial;"&gt;Functions are essential part of code in C and C++ language, so be sure to carefully read this lesson. You’ll notice there’s nothing to be afraid of – they are really easy to understand, and sometimes, can lighten up our program code significantly. In a way, they remind us of our main program. Functions usually return value that we use in our main block, but sometimes they return nothing. Either way, they do their task: like printing on screen or calculating equations. C++ Maniac presents you another interesting tutorial!&lt;/span&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;strong style="font-family: arial;"&gt;&lt;u&gt;&lt;br /&gt;&lt;br /&gt;Example:&lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Write your own function that calculates arithmetic middle of three real numbers. Write additional main program that stores given three numbers and calls on your previous function, and then prints calculated arithmetic middle.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;&lt;pre&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;&lt;br /&gt;float arit_midd( float a, float b, float c ){&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;  float ar;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;  ar = (a + b + c) / 3;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;  return ar; // How many values “return” may return?&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;}&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;int main(void) {&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;   float x, y, z, midd;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;   printf("\nInput three real numbers : ");&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;   scanf("%f %f %f", &amp;x, &amp;amp;y, &amp;z );&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;   midd = arit_midd(x,y,z);&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;   printf("\nArithmetic middle : %f", midd);&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;}&lt;/span&gt;&lt;/pre&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong style="font-family: arial;"&gt;&lt;u&gt;Example:&lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;What will be printed after execution of a program that calls on a function?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;&lt;pre&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;void twotimes(int x) {&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;  printf ("\nF:Argument before change took place %d",x);&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;  x *= 2;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;  printf ("\nF:Argument after tempering with it %d",x);&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;}&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;int main(void) {&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;  int number=10;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;  printf ("\nM:Number before function-call %d",number);&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;  twotimes(number);&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;  printf("\nM:Number after function-call is %d",number);&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;}&lt;/span&gt;&lt;/pre&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong style="font-family: arial;"&gt;&lt;/strong&gt;&lt;strong style="font-family: arial;"&gt;&lt;u&gt;Result on-screen:&lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;M:Number before function-call 10&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;F:Argument before change took place 10&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;F:Argument after tempering with it 20&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;M:Number after function-call 10&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-weight: bold;"&gt;Change inside a function wasn’t saved after execution and return to main program! Why?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;&lt;pre&gt;&lt;span style="font-size:130%;"&gt;int twotimes(int x){&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;   printf ("\nF:Argument before change took place %d",x);&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;   x *= 2;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;   printf ("\nF:Argument after tempering with it %d",x);&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;   return x;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;}&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;int main(void) {&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;   int number=10;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;   printf ("\nM:Number before function-call %d",number);&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;   broj = twotimes(number);&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;   printf("\nM:Number after function-call %d",number);&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;}&lt;/span&gt;&lt;/pre&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong style="font-family: arial;"&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong style="font-family: arial;"&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong style="font-family: arial;"&gt;&lt;u&gt;Result on-screen:&lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;M:Number before function-call 10&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;F:Argument before change took place 10&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;F:Argument after tempering with it 20&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;M:Number after function-call 20&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong style="font-family: arial;"&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong style="font-family: arial;"&gt;&lt;u&gt;Example:&lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Compose a function that calculates value of a sinus func. as sum of n elements. Function’s argument is given in radians. Func. sinus is defined as:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://img49.imageshack.us/img49/1969/esuma5rg.gif"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 400px;" src="http://img49.imageshack.us/img49/1969/esuma5rg.gif" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;&lt;pre&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;&lt;br /&gt;&lt;br /&gt;#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;#include &amp;lt;math.h&amp;gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;font-family:Courier New;font-size:130%;"  &gt;//realization with use of no additional functions&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt; &lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;float sinus(float x, int n){&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;  int i, forsign;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;  float sum, element, fakt, xpot;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;  sum = 0.0;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;  xpot = x;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;  fakt = 1.0;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;  forsign = 1;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;  for( i=1; i&amp;lt;=n; i++ ) {&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;     element = forsign * xpot / fakt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;     forsign *= -1;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;     xpot *= x*x;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;     fakt *= (2*i) * (2*i+1);&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;     sum += element;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;  }&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;  return sum;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;}&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;font-family:Courier New;font-size:130%;"  &gt;//realization with help of additional functions&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;long fakt( int n ){&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;  int     i;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;  long     f=1;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;  for( i=1; i&amp;lt;=n; i++ ) {&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;      f *= i; }&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;  return f;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;}&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;float sinus(float x, int n){&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;  int i, forsign;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;  float sum, element; sum = 0.0; forsign = 1;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;  for( i=1; i&amp;lt;=n; i++ ) {&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;     element = forsign * pow(x,2*i-1) / fakt(2*i-1);&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;     forsign *= -1;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;     sum += element;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;  }&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;return sum;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;}&lt;/span&gt;&lt;/pre&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;Technorati Tags: &lt;/span&gt;&lt;a style="font-family: arial;" href="http://technorati.com/tag/C++" rel="tag"&gt;C++&lt;/a&gt;&lt;span style="font-family:arial;"&gt;, &lt;/span&gt;&lt;a style="font-family: arial;" href="http://technorati.com/tag/C" rel="tag"&gt;C&lt;/a&gt;&lt;span style="font-family:arial;"&gt;, &lt;/span&gt;&lt;a style="font-family: arial;" href="http://technorati.com/tag/Program" rel="tag"&gt;Program&lt;/a&gt;&lt;span style="font-family:arial;"&gt;, &lt;/span&gt;&lt;a style="font-family: arial;" href="http://technorati.com/tag/Code" rel="tag"&gt;Code&lt;/a&gt;&lt;span style="font-family:arial;"&gt;, &lt;/span&gt;&lt;a style="font-family: arial;" href="http://technorati.com/tag/Visual+Studio" rel="tag"&gt;Visual Studio&lt;/a&gt;&lt;span style="font-family:arial;"&gt;, &lt;/span&gt;&lt;a style="font-family: arial;" href="http://technorati.com/tag/Sinus" rel="tag"&gt;Sinus&lt;/a&gt;&lt;span style="font-family:arial;"&gt;, &lt;/span&gt;&lt;a style="font-family: arial;" href="http://technorati.com/tag/Function" rel="tag"&gt;Function&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;</content><link rel='alternate' type='text/html' href='http://visualcplus.blogspot.com/2006/03/lesson-16-functions-in-c.html' title='Lesson 16: Functions in C'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22017830&amp;postID=114212495410706810' title='6 Comments'/><link rel='replies' type='application/atom+xml' href='http://visualcplus.blogspot.com/feeds/114212495410706810/comments/default' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://visualcplus.blogspot.com/feeds/posts/default/114212495410706810'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22017830/posts/default/114212495410706810'/><author><name>Vurdlak</name><uri>http://www.blogger.com/profile/08849999795183163370</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-22017830.post-114202013505934927</id><published>2006-03-10T20:48:00.000+01:00</published><updated>2006-11-01T04:50:15.976+01:00</updated><title type='text'>Lesson 15: Matrixes and 2D Arrays</title><content type='html'>&lt;span style="font-family:arial;"&gt;There was a slight pause in my C++ Maniac programming tutorial, due to me answering some of your C &amp; C++ lesson-related questions. You can find some explanations on previous programming materials in my sidebar now, along with other new C &amp; C++ stuff. It seems to me finally, after all troubleshoots are answered (or are they?!), we can bravely continue. This 15th lesson is about matrixes and two-dimensional C++ arrays. Although this one may look significantly more complicated, if you read through it carefully, you will conquer programming matrixes with no problem – I promise you that. &lt;/span&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;font-family:arial;" &gt;Declaration of a 2D array in C language:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;font-family:arial;" &gt;int x[3][2] - matrix 3X2 (3 rows, 2 columns), elements: integers&lt;/span&gt;&lt;br /&gt; &lt;span style="font-family: courier new;font-family:arial;" &gt;char myascii[2][4] - array of characters (2 rows &amp; 4 columns)&lt;/span&gt;&lt;br /&gt; &lt;span style="font-family: courier new;font-family:arial;" &gt;float sequence[MAXROW][MAXCOL] - MAXROW X MAXCOL matrix&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:arial;font-size:130%;"  &gt;Example of declaration with initialization:&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;&lt;pre&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;int array[3][3] = {1, 2, 3, 4, 5};&lt;br /&gt;array[0][0] = 1&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;array[0][1] = 2 &lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;array[0][2] = 3 &lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;array[1][0] = 4 &lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;array[1][1] = 5&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;array[1][2] = 0 // even though nowhere stated&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;array[2][0] = 0&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;array[2][1] = 0&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;array[2][2] = 0&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;&lt;br /&gt;&lt;br /&gt;char cmaniac[7] = {'C', 'M', 'A', 'N', 'I', 'A', 'C'} &lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;&lt;br /&gt;/* array of characters */&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;&lt;br /&gt;&lt;br /&gt;int y[3][4] = {   {1, 2, 3},&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;                  {4, 5, 6},&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;                  {7, 8, 9}   };&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;y[0][0]= 1    y[0][1]= 2    y[0][2]= 3    y[0][3]= 0&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;y[1][0]= 4    y[1][1]= 5    y[1][2]= 6    y[1][3]= 0&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;y[2][0]= 7    y[2][1]= 8    y[2][2]= 9    y[2][3]= 0&lt;/span&gt;&lt;/pre&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:arial;" &gt;Declaration of multidimensional array:&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;&lt;pre&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;int x[3][2][4]          3D array of integer numbers&lt;br /&gt;float x[3][2][4][1]     4D array of real numbers&lt;/span&gt;&lt;/pre&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong style="font-family: arial;"&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong style="font-family: arial;"&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong style="font-family: arial;"&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong style="font-family: arial;"&gt;&lt;/strong&gt;&lt;strong style="font-family: arial;"&gt;&lt;u&gt;Example:&lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Write your own C program that reads through real matrix, 10x10 dimensioned and finds the smallest element in main diagonal and smallest element in secondary diagonal. &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;&lt;pre&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;&lt;br /&gt;#define NR_ROW      10&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;#define NR_COL      10&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;&lt;br /&gt;int main(void) {&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;&lt;br /&gt;int     i, j;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;float mat[NR_ROW][NR_COL], min_maindg, min_secdg;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;printf("Input matrix elements :");&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;for (i = 0; i &amp;lt; NR_ROW; i++) {&lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;&lt;br /&gt;  for (j = 0; j &amp;lt; NR_COL; j++) {&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;&lt;br /&gt;      printf("\nInput element [%d][%d] : ", i, j);&lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;&lt;br /&gt;      scanf("%f", &amp;mat[i][j]);&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;&lt;br /&gt;  }&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;}&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;min_maindg = mat[0][0];&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;&lt;br /&gt;//min el. is mat(0,0), this is why loop starts from 1&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;    for (i = 1; i &amp;lt; NR_ROW; i++) {&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;           if (mat[i][i] &amp;lt; min_maindg) {&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;&lt;br /&gt;                min_maindg = mat[i][i];&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;&lt;br /&gt;         }&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;    }&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;&lt;br /&gt;min_secdg = mat[0][NR_COL -1];&lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;&lt;br /&gt;for (i = 1; i &amp;lt; NR_ROW; i++) {&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;&lt;br /&gt; if (mat[i][NR_COL-i-1] &amp;lt; min_secdg) {&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;&lt;br /&gt;     min_secdg = mat[i][NR_COL-i-1];&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;&lt;br /&gt; }&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;}&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;  &lt;br /&gt;printf("\nSmallest el. in main diagonal is: %f",&lt;br /&gt;       min_maindg);&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;printf("\nSmallest el. in second diagonal is: %f",&lt;br /&gt;       min_secdg);&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;}&lt;/span&gt;&lt;/pre&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:arial;" &gt;Shorter version – single run through the matrix:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;&lt;pre&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;&lt;br /&gt;#define NR_ROW     10&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;#define NR_COL     10&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;&lt;br /&gt;int main(void) {&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;&lt;br /&gt;   int     i, j;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;    float mat[NR_ROW][NR_COL], min_maindg, min_secdg;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;    printf("\nInput matrix elements :\n");&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;    for (i = 0; i &amp;lt; NR_ROW; i++) {&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;      for (j = 0; j &amp;lt; NR_COL; j++) {&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;&lt;br /&gt;         printf("\nInput element [%d][%d] : ", i, j);&lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;&lt;br /&gt;         scanf("%f", &amp;mat[i][j]);&lt;br /&gt;&lt;br /&gt;         if (i == 0 &amp;&amp;amp; j == 0) {&lt;br /&gt;&lt;br /&gt;             min_maindg = mat[i][j];&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;&lt;br /&gt;         }&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:Courier New;font-size:130%;"  &gt;          if (i == 0 &amp;&amp;amp; j == NR_COL - 1) {&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;b