int num[365]; /* primer elemento: num[0],
último elemento: num[364] */
double matriz[10][5]; /* matriz de 50 reales:
matriz[0][0]: primera fila y primera columna,
matriz[9][4]: última fila y última columna */
char trinitotolueno[70][7][5]; /* array de caracteres tridimensional */
int temp[65]; /* array global de 65 enteros */
int main() {
double lluvia[200]; /* array local de 200 reales */
.
.
.
}
#include <stdio.h>
int dias[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
/* el compilador cuenta el número de elementos del array y por tanto no es necesario que éste aparezca explícitamente entre los corchetes */
int main() {
int i = 0;
for (; i < sizeof(dias)/sizeof(int); i++)
printf("El mes %d tiene %d dias.\n", i + 1, dias[i]);
/* en la expresión de test del bucle se calcula el número de elementos del array */
system("pause");
return 0;
}
char nums[4] = {1, 2, 3, 4, 5}; /* declaración incorrecta */
int antifaz[4] = {5, 6, 7, 8};
/* antifaz == &antifaz[0] */
#include <stdio.h>
int main() {int antifaz[4] = {5, 6, 7, 8};
printf("antifaz: %p. &antifaz[0]: %p.\n", antifaz, &antifaz[0]);
system("pause");
return 0;
}
int cuad[2][3] = {{1, 2, 3}, {4, 5, 6}};
int cuad[2][3] = {1, 2, 3, 4, 5, 6};
int solido[10][20][30]; /* 6000 enteros */
#include <stdio.h>
int main() {int i, j, nums[5][4];
.
.
.
system("pause");
return 0;
}
#include <stdio.h>
void duplica(int [][4], int, int); /* también es válido "int [2][4]" */
int main() {
int basura[][4] = {{1, 2, 3, 4}, {5, 6, 7, 8}};
/* int basura[2][4] = {1, 2, 3, 4, 5, 6, 7, 8}; */
int i, j;
duplica(basura, 2, 4);
for (i = 0; i < 2; i++) {
for (j = 0; j < 4; j++)
printf("%d ", basura[i][j]);
putchar('\n'); /* siguiente fila en nueva línea */
}
system("pause");
return 0;
}
void duplica(int arr[][4], int numfils, int numcols) {
/* también es válido "int arr[2][4]" */
int i, j;
for (i = 0; i < numfils; i++)
for (j = 0; j < numcols; j++)
arr[i][j] *= 2; /* arr[i][j] = arr[i][j] * 2; */
}
#include <stdio.h>
void creatabla(int [][10], int, int); /* también es válido "int [9][10]" */
int main() {
int tabla[9][10]; /* tablas de multiplicar del uno al nueve */
...
...
for (i = 0; i < 9; i++) {
for (j = 0; j < 10; j++)
printf("%d por %d = %d.\n", i + 1, j + 1, tabla[i][j]);
printf("Pulse una tecla...\n\n");
getch(); /* similar a "getchar()" pero sin pulsar <ENTER> */
}
...
}
void creatabla(int arr[][10], int numfils, int numcols) {
/* también es válido "int arr[9][10]" */
...
...
...
arr[i][j] = (i + 1) * (j + 1);
}
INICIO 1ª 2ª 3ª 4ª 5ª
4 2 0 -1 -3 -3
2 0 -1 -3 -1 -1
0 -1 -3 0 0 0
-1 -3 2 2 2 2
-3 4 4 4 4 4
#include <stdio.h>
#define DIM 10
void burbuja(int [], int); /* encabezamiento o prototipo */
int main() {
int entero[DIM], i;
printf("Carga del vector de %d enteros:\n\n", DIM);
for (i = 0; i < DIM; i++) {
printf("- Elemento %d: ", i);
scanf("%d", &entero[i]);
}
burbuja(entero, DIM); /* parámetros reales */
printf("\nVector de %d enteros ordenado:\n", DIM);
for (i = 0; i < DIM; i++)
printf("\n- Elemento %d: %d.", i, entero[i]);
printf("\n\n"); /* dos saltos de línea */
system("pause");
return 0;
}
void burbuja(int vector[], int n) { /* parámetros formales */
int i, w, aux;
do {
w = 0;
for (i = 0; i < n - 1; i++) /* comprobación del orden */
if (vector[i] > vector[i + 1]) { /* dos elementos desordenados */
aux = vector[i]; /* intercambio de elementos */
vector[i] = vector[i + 1];
vector[i + 1] = aux;
w = 1; /* hay que volver a comprobar el vector */
}
} while(w); /* while(w == 1); */
}
void escalar(double a[], double b[], double num). Asigna al parámetro de salida b el resultado de multiplicar el complejo a por el escalar num.Para obtener la raíz cuadrada de un número real y el seno y el coseno de un ángulo pueden utilizarse respectivamente las siguientes funciones, cuyos prototipos se encuentan en el fichero de encabezamiento <math.h>:
void suma(double a[], double b[], double c[]). Suma los complejos a y b, y asigna el resultado al parámetro de salida c.
double modulo(double a[]). Devuelve como resultado el módulo del complejo a.
void producto(double a[], double b[], double c[]). Multiplica los complejos a y b, y asigna el resultado al parámetro de salida c.
void vector(double mod, double arg, double a[]). Asigna al parámetro de salida a las componentes vectoriales del complejo expresado en forma polar mediante el módulo mod y el argumento arg.