User Tools

Site Tools


cs:c_language:functions_and_matrices_1
Return to Home page

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

cs:c_language:functions_and_matrices_1 [2019/02/26 14:35] (current)
Line 1: Line 1:
 +====== Functions and Matrices (Example 1) ======
 +**Consepts:​**\\
 +Passage of a Matrix to a function (matrices in C are passed to a function by reference)
  
 +**Text:**\\
 +Realize a function that:
 +  * receives as parameters a matrix and its dimension (''​nr''​ and ''​nc''​ are the number of matrix rows and columns, respectively). The prototype of the function is the following:
 +<code C>
 +void change_sign(int matr[][C], int nr, int nc);
 +</​code>​
 +  * the function must change the sign of all the elements of the rows of the matrix that have an //even// row index (i.e, rows with indexes 0, 2, 4, 6,...)
 +
 +The calling function (''​main''​) must print the matrix before and after the transformation performed by the function ''​change_sign''​.
 +
 +**Solution:​**\\
 +<file C matrici_funzioni_1.c>​
 +/* Realize a function that receives as parameters a matrix and its dimension, i.e., the number of rows and columns.
 +   The function must change the sign of all the elements of the rows of the matrix that have an even row index
 +   (i.e, rows with indexes 0, 2, 4, 6,...). */
 +
 +#include <​stdio.h>​
 +
 +#define R 3
 +#define C 4
 +
 +void change_sign(int matr[][C], int nr, int nc);
 +
 +int main(){
 +  int m[R][C] = {{1, 2 , 3, 4}, {-1, -2, 3, 4}, {1, -2, 3, -4}};
 +  int i, j;
 +
 +  printf("​Initial matrix\n"​);​
 +  for(i=0; i<R; i++){
 +    for(j=0; j<C; j++){
 +      printf("​%3d",​ m[i][j]);
 +    }
 +    printf("​\n"​);​
 +  }
 +
 +  change_sign(m,​ R, C);
 +
 +  printf("​Final matrix, with even index rows changed of sign\n"​);​
 +  for(i=0; i<R; i++){
 +    for(j=0; j<C; j++){
 +      printf("​%3d",​ m[i][j]);
 +    }
 +    printf("​\n"​);​
 +  }
 +
 +  return 0;
 +}
 +
 +
 +void change_sign(int matr[][C], int nr, int nc){
 +  int r, c;
 +  ​
 +  for(r=0; r<nr; r++) {
 +    if(r%2==0) {
 +      for(c=0; c<nc; c++) {
 +        matr[r][c] = -1*matr[r][c];​
 +      }
 +    }
 +  }
 +}
 +</​file>​

If you found any error, or if you want to partecipate to the editing of this wiki, please contact: admin [at] skenz.it

You can reuse, distribute or modify the content of this page, but you must cite in any document (or webpage) this url: https://www.skenz.it/cs/c_language/functions_and_matrices_1?rev=1551188115&do=diff
/web/htdocs/www.skenz.it/home/data/pages/cs/c_language/functions_and_matrices_1.txt ยท Last modified: 2019/02/26 14:35 (external edit)

Privacy Policy