C/Data Type/Array Int
Содержание
- 1 Allocate memory for int array
- 2 An example of how to initialize a matrix: loop
- 3 an example of using an array for two tasks
- 4 Array: assign and retrieve value
- 5 Array initialization
- 6 Assign int value reference to int array
- 7 Declares a 100-integer array
- 8 Define array and use it
- 9 Define int array and assign value
- 10 how to use arrays with functions
- 11 Int array and its pointer
- 12 Output array address
- 13 Prints out numbers and their doubles
- 14 Reference element in array
- 15 Shows two ways an array can be cleared
- 16 Use for loop to calculate the square and save it to array
Allocate memory for int array
<source lang="cpp">
- include <stdio.h>
- include <malloc.h>
main() {
int *base; int i; int j; int cnt=0; int sum=0; printf("how many integers you have to store \n"); scanf("%d",&cnt); base = (int *)malloc(cnt * sizeof(int)); printf("the base of allocation is %16lu \n",base); if(!base) printf("unable to allocate size \n"); else { for(j = 0; j < cnt; j++) *(base+j)=5; } sum = 0; for(j = 0; j < cnt; j++) sum = sum + *(base+j); printf("total sum is %d\n",sum); free(base); printf("addr of allocation is %16lu \n",base); base = (int *)malloc(cnt * sizeof(int)); printf("the base of allocation is %16lu \n",base); base = (int *)malloc(cnt * sizeof(int)); printf("the base of allocation is %16lu \n",base); base = (int *)calloc(10,2); printf("the base of allocation is %16lu \n",base);
}
</source>
An example of how to initialize a matrix: loop
<source lang="cpp">
- define X_SIZE 60
- define Y_SIZE 30
int main() {
int matrix[X_SIZE][Y_SIZE]; int x,y; /* current element to zero */ for (x = 0; x < X_SIZE; ++x) { for (y = 0; y < Y_SIZE; ++y) { matrix[x][y] = -1; } } return (0);
}
</source>
an example of using an array for two tasks
<source lang="cpp">
- include <stdio.h>
int main() {
int temps[31]; int i, total; float average,celsius; total=0.0; for( i = 0; i < 31; i++) { printf("enter temperature #%d:", i); scanf("%d", &temps[i]); } for(i = 0; i < 31; i++) total += temps[ i ]; average = total / 31.0; printf("average is:%f\n\n", average); puts("fahrenheit \t celsius\n"); for( i = 0; i < 31; i++) { celsius = (5.0 / 9.0) * ( temps[ i ] - 32); printf("%d\t\t%6.2f\n", temps[ i ], celsius); }
}
</source>
Array: assign and retrieve value
<source lang="cpp">
- include <stdio.h>
int main() {
int i = 0; int a[5]; for(i = 0;i<5;i++) { a[i]=i; } for( i = 0;i<5;i++) { printf(" %d\n",a[i]); }
}
</source>
Array initialization
<source lang="cpp">
- include <stdio.h>
int array[] = {3, 2, 1, 3, 6, 4, 2, 2, 9, 3}; int index; int main() {
index = 0; while (array[index] != 0) ++index; printf("Number of elements before zero %d\n", index); return (0);
}
</source>
Assign int value reference to int array
<source lang="cpp">
- include <stdio.h>
void printarr(int *a[]); void printarr_usingptr(int *a[]); int *a[5]; main() {
int i1=4,i2=3,i3=2,i4=1,i5=0; int i; int j; a[0]=&i1; a[1]=&i2; a[2]=&i3; a[3]=&i4; a[4]=&i5; printarr(a); printarr_usingptr(a);
} void printarr(int *a[]) {
int j; printf("Address in array Value\n"); for(j = 0;j < 5;j++) { printf("%16u %16u %d\n",a[j],a[j],a[j]); }
} void printarr_usingptr(int *a[]) {
int j = 0; printf("using pointer\n"); for( j=0;j<5;j++) { printf("value of elements %d %16lu %16lu\n",**a,*a,a); a++; }
}
</source>
Declares a 100-integer array
<source lang="cpp">
- include <stdio.h>
int main(void) {
int x[100]; int i; /* load x with values 0 through 99 */ for(i = 0; i < 100; ++i) x[ i ] = i; /* display contents of x */ for(i = 0; i < 100; ++i) printf("%d ", x[ i ]); return 0;
}
</source>
Define array and use it
<source lang="cpp">
- include <stdio.h>
void main() {
int numbers[10]; /* Array storing 10 values */ int count = 10; /* Number of values to be read */ long sum = 0L; /* Sum of the numbers */ float average = 0.0f; /* Average of the numbers */ int i = 0; /* Loop counter */ printf("\nEnter the 10 numbers:\n"); /* Read the ten numbers to be averaged */ for(i = 0; i < count; i ++) { printf("%2d : ",i+1); scanf("%d", &numbers[i]); /* Read a number */ sum += numbers[i]; /* Add it to sum */ } average = (float)sum/count; /* Calculate the average */ printf("Average of the ten numbers entered is: %f\n", average);
}
</source>
Define int array and assign value
<source lang="cpp">
- include <stdio.h>
int main(void) {
int a1[10], a2[10]; int i; for(i = 1; i < 11; i++) a1[ i - 1 ] = i; for( i = 0; i < 10; i++) a2[ i ] = a1[ i ]; for( i = 0; i < 10; i++) printf("%d ", a2[ i ]); return 0;
}
</source>
how to use arrays with functions
<source lang="cpp">
- include <iostream>
using namespace std;
- define iSIZE 5
void vadd_1(int iarray[]); main( ) {
int iarray[iSIZE]={0,1,2,3,4}; int i; cout << "iarray before calling add_1:\n\n"; for(i=0; i < iSIZE; i++) cout << " " << iarray[i]; vadd_1(iarray); cout << "\n\niarray after calling vadd_1:\n\n"; for(i=0; i < iSIZE; i++) cout << " " << iarray[i]; return(0);
} void vadd_1(int iarray[]) {
int i; for(i=0; i < iSIZE; i++) iarray[i]++;
}
</source>
Int array and its pointer
<source lang="cpp">
- include <stdio.h>
int main(void) {
int a[10] = {10, 20, 30, 40, 50, 60, 70, 80, 90, 100}; int *p; p = a; /* assign p the address of start of array a */ /* output a"s first, second and third elements using pointer */ printf("%d %d %d\n", *p, *(p+1), *(p+2)); /* this does the same thing using a */ printf("%d %d %d", a[0], a[1], a[2]); return 0;
}
</source>
Output array address
<source lang="cpp">
- include <stdio.h>
void print_addr(int a[]); main() {
int a[5]; int i; for(i = 0;i<5;i++) { a[i]=i; } print_addr(a);
}
void print_addr(int a[]) {
int *b; int i; b = a; for(i = 0;i < 5; i++) { printf("value %d and address is %16lu\n",*b,b); b++; }
}
</source>
Prints out numbers and their doubles
<source lang="cpp"> int main() {
int data[10]; int twice[10]; int index; for (index = 0; index < 10; ++index) { data[index] = index; twice[index] = index * 2; } return (0);
}
</source>
Reference element in array
<source lang="cpp">
- include <stdio.h>
char s[80]; int main(void) {
s[3] = "X"; printf("%c", s[3]); return 0;
}
</source>
Shows two ways an array can be cleared
<source lang="cpp">
- define MAX 10
void init_array_1(int data[]) {
int index; for (index = 0; index < MAX; ++index) data[index] = 0;
} void init_array_2(int *data_ptr) {
int index; for (index = 0; index < MAX; ++index) *(data_ptr + index) = 0;
} int main() {
int array[MAX]; init_array_1(array); init_array_1(&array[0]); init_array_2(array); return (0);
}
</source>
Use for loop to calculate the square and save it to array
<source lang="cpp">
- include <stdio.h>
int main(void) {
int sqrs[ 10 ]; int i; for(i = 1; i < 11; i++) sqrs[ i - 1 ] = i * i ; for(i = 0; i < 10; i++) printf( "%d ", sqrs[ i ] ); return 0;
}
</source>