Lesson 14: Arrays


E-mail this post



Remember me (?)



All personal information that you provide here will be governed by the Privacy Policy of Blogger.com. More...



In C language arrays are very popular. They can be found in almost any program code and are pretty helpful and easy to understand. To understand them, just visualize a sequence of numbers and try assigning them to only one declaration. It can be done if the declaration is properly stated as an array including index brackets (example int MySequence[20]).



Arrays

Array is data structure used to share multiple data elements under a single name declaration. It’s important that every single element of data, we wish to assign to array, belongs to the same data type. Array’s elements are easily accessed – we use index; a number that must be nonnegative integer (constant, variable, integer expression). Element’s index is a number between 0 and the number of elements minus one, including. In short: Index ( [0, NrOfElements – 1].



Declaration of an array:


data_type array[index];



Array’s definition in C:

int x[20] – array consisted of 20 integer numbers
char symbols[2] – array consisted of 2 characters
float sequence[MAX] – MAX is constant



Assigning element’s values definition:

int array[ ] = {1, 2, 3};
array[0] = 1
array[1] = 2
array[2] = 3

int array [4] = {1, 2};
array[0] = 1
array[1] = 2
array[2] = 0
array[3] = 0



Accessing array’s elements:

x[0] – first element of an array
sequence[i] – i. element of an array, 0 <= i <= NrOfElements – 1
sequence[MAX – 1] – last element of an array



Common Wrong access to array’s elements:

int array[10] = {0};
int x = sequence[10];

float a = 1.;
int x = array[a];
int a = 1, b = 0, c = 1;
int x = array[(a && b) - c];




Example:

Write your own program that asks user to input sequence of numbers, afterwards it calculates arithmetic middle of the given sequence. Program also prints numbers smaller than arithmetic middle, and afterwards prints numbers bigger than arithmetic middle.



#include <stdio.h>
#define DIMENSION 10


int main(void) {

int i;

float sum = 0., arit_midd = 0., sequence[DIMENSION]={0};

for (i = 0; i < DIMENSION; i++) {

printf("Input number: ");
scanf("%f",&sequence[i]);
sum += sequence[i];

}

arit_midd = sum / DIMENSION;
printf("Arithmetic middle of the sequence is %6.2f.\n", arit_midd);
for (i = 0; i < DIMENSION; i++) {

if (sequence[i] < arit_midd) {

printf("%6.2f is smaller than arithmetic middle.\n", sequence[i]);

}
}

for (i = 0; i < DIMENSION; i++) {

if (sequence[i] > arit_midd) {

printf("%6.2f is bigger than arithmetic middle.\n", sequence[i]);

}
}

// What happens if the number is equal to arithmetic middle?

}





Example:


Write your own program that asks for input of sequence of numbers. After the program reads given numbers, it divides every number with the biggest sequence element and shows them in a way relative to the biggest element.


#include <stdio.h>
#define DIMENSION 10


int main(void) {

int i;
float max, array[DIMENSION];

for (i = 0; i < DIMENSION; i++) {

printf("array[%d] = ", i);
scanf("%f",& array[i]);
if (i == 0) {

max = array[i];

}
if (max < array[i]) {

max = array[i];

}
}

printf("Biggest element in array is %f.\n\n", max);
for (i = 0; i < DIMENSION; i++) {

array[i] /= max;
printf("array[%d] = %f\n", i, array[i]);

}
}





Example:

Compose your own program that reads given natural numbers that belong in [10, 99] interval and counts how many times each number showed up. Program stops reading numbers when element that doesn’t belong to interval is given. Afterwards, program prints each number from the interval that has showed at least once, and number of times it has really been given.



#include <stdio.h>

#define LL 10 /* lower limit of the interval */

#define UL 99 /* upper limit of the interval */

int main(void) {

int number, i;
int counter[UL – LL + 1] = { 0 };

do {

printf("\nInput number from interval [%d, %d]: ", LL, UL);
scanf("%d", &number);
if (number >= LL && number <= UL) {

counter[number - LL]++;

}

} while (number >= LL && number <= UL);

for (i = DG; i <= UL; i++) {

if (counter[i - LL] > 0) {

printf("\nNumber %d showed up %d times", i, counter [i - LL]);

}
}
}



Technorati Tags:
, , , , , ,



1 Responses to “Lesson 14: Arrays”

  1. Anonymous Anonymous 

    The first example could have been very simple.

    int main(void) {
    int i;
    float Ary[10];
    for (i = 0; i < 10; i++) { Ary[i]=i; }

    for (i = 0; i < 10; i++) { printf("array[%d] = ", i)}; }
    }

Leave a Reply

      Convert to boldConvert to italicConvert to link

 


German Flag Spanish Flag French Flag Italian Flag Portuguese Flag Japanese Flag Korean Flag Chinese Flag British Flag


This Website is optimized for Firefox. Users browsing with Internet Explorer may encounter problems while viewing pages.


C++ Maniac



Learn C



Additional



#include



Learn Converting



Appendix


Links


Previous posts




Daily Lessons for programming in Visual Studio, using C code.