User Tools

Site Tools


cs:c_language:array_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:array_1 [2019/02/26 14:35]
cs:c_language:array_1 [2020/11/26 23:18] (current)
Line 1: Line 1:
 +====== Array (Example 1) ======
 +**Concepts:**\\
 +Arrays, initialization and utilization
  
 +**Text:**\\
 +Implement a C program that:
 +  * after the declaration and the initialization of a vector of 10 elements
 +  * finds and prints the first even number and its position in the array
 +
 +**Solution:**\\
 +<file C array_1.c>
 +/* Print the first even number and its position of a 10 elements array/vector. */
 +
 +#include <stdio.h>
 +#define SIZE 10
 +
 +int main(){
 +
 +  int vec[SIZE] = {1, 5, 3, 7, 10, 1, 2, 3, 4, 5};
 +  int i;
 +  int found = 0;
 +
 +  /* First solution */
 +  for(i=0; i<SIZE && !found; i++){
 +    if ( vec[i]%2 == 0 ){
 +      found = 1;
 +    }
 +  }
 +
 +  /* Second solution */
 +  i = 0; found = 0;
 +  while ( i<SIZE && !found ){
 +    if ( vec[i]%2==0 ){
 +      found = 1;
 +    }
 +    i = i + 1;
 +  }
 +  
 +  if (found){
 +    printf("EVEN NUMBER: %d (POSITION: %d)\n", vec[i-1], i-1);
 +  } else {
 +    printf("No even number is present in array\n");
 +  }
 +
 +  return 0;
 +}
 +</file>
 +
 +**Comments:**\\
 +The program:
 +  * after the initialization of an array of dimension //SIZE//, directly performed during the declaration:
 +  <code c>
 +  int vec[SIZE] = {1, 5, 3, 7, 10, 1, 2, 3, 4, 5};
 +  </code>
 +  * it scans the array by using a //for// cycle until all the elements of the vector are analyzed (condition //i<SIZE//) and until an even number is found (the variable //found// has a value different than  //0//, i.e., true). The variable //found// is set to //1// when the first even number is found in the vector.
 +  <code c>
 +  for(i=0; i<SIZE && !found; i++){
 +    if ( vec[i]%2 == 0 ){
 +      found = 1;
 +    }
 +  }
 +  </code>
 +  * the same exercise can be resolved equivalently by using the //while// statement:
 +  <code c>
 +  /* Second solution */
 +  i = 0; found = 0;
 +  while ( i<SIZE && !found ){
 +    if ( vec[i]%2==0 ){
 +      found = 1;
 +    }
 +    i = i + 1;
 +  }  
 +  </code>
 +  * results are printed at the end of the program. It is important to notice that at the exit of both the //for// and the //while// cycle, the variable //i// is the next position of the first even number. For such reason, to print the first even element of the vector and its position the variables //vec[i-1]// and //i-1// must be used, respectivelly. 
 +  <code c>
 +  if (found){
 +    printf("EVEN NUMBER: %d (POSITION: %d)\n", vec[i-1], i-1);
 +  } else {
 +    printf("No even number is present in array\n");
 +  }  
 +  </code>

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/array_1?rev=1551188115&do=diff