User Tools

Site Tools


Action disabled: revisions
cs:c_language:array_1
Return to Home page

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:

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;
}

Comments:
The program:

  • after the initialization of an array of dimension SIZE, directly performed during the declaration:
  int vec[SIZE] = {1, 5, 3, 7, 10, 1, 2, 3, 4, 5};
 
  • 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.
  for(i=0; i<SIZE && !found; i++){
    if ( vec[i]%2 == 0 ){
      found = 1;
    }
  }
 
  • the same exercise can be resolved equivalently by using the while statement:
  /* Second solution */
  i = 0; found = 0;
  while ( i<SIZE && !found ){
    if ( vec[i]%2==0 ){
      found = 1;
    }
    i = i + 1;
  }  
 
  • 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.
  if (found){
    printf("EVEN NUMBER: %d (POSITION: %d)\n", vec[i-1], i-1);
  } else {
    printf("No even number is present in array\n");
  }  
 

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?do=revisions
/web/htdocs/www.skenz.it/home/data/pages/cs/c_language/array_1.txt · Last modified: 2020/11/26 23:18 (external edit)