Ejercicios - Leccion 8
2.a
#include <stdio.h>
#include <stdlib.h>
#define MAX_TAMANO 10
int imprimirArray(int *a);
int main(void){
int vector[MAX_TAMANO] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
imprimirArray(vector);
// estetica y tal
fprintf(stdout, "\n");
system("pause");
return 0;
}
int imprimirArray(int *a) {
int i;
for (i = 0; i < MAX_TAMANO; i++) {
fprintf(stdout, "%d ", a[i]);
}
}
2.b
#include <stdio.h>
#include <stdlib.h>
#define TAMANO 25
#define PI 3.1415
void imprimirArrayInt(int* vector, int longitud);
void imprimirArrayFloat(float* vector, int decimal, int longitud);
int main(void) {
int arrayInt[TAMANO], i;
float arrayFloat[TAMANO];
// llenamos los array con numericos
for (i = 0; i < TAMANO; i++) {
arrayInt[i] = i;
}
for (i = 0; i < TAMANO; i++) {
arrayFloat[i] = i + ((i*TAMANO)/PI);
}
imprimirArrayInt(arrayInt, 10);
imprimirArrayFloat(arrayFloat, 5, 10);
system("pause");
return 0;
}
void imprimirArrayInt(int *vector, int longitud) {
int i;
for (i = 0; i < longitud; i++) {
fprintf(stdout, "%d ", vector[i]);
}
}
void imprimirArrayFloat(float *vector, int decimal, int longitud) {
int i;
for (i = 0; i < longitud; i++) {
fprintf(stdout, "%lf\n\n", vector[i]);
}
}
3.
#include <stdio.h>
#include <stdlib.h>
#define TAMANO 25
void iniArrayInt(int* vector);
void iniArrayChar(char* vector);
int main(void) {
int numeros[TAMANO];
char letras[TAMANO];
iniArrayInt(numeros);
iniArrayChar(letras);
system("pause");
return 0;
}
void iniArrayInt(int* vector) {
int i;
for (i = 0; i < TAMANO; i++) {
vector[i] = 0;
}
}
void iniArrayChar(char* vector) {
int i;
for (i = 0; i < TAMANO; i++) {
vector[i] = " ";
}
}
4.
#include <stdio.h>
#include <stdlib.h>
#define TAMANO 10
int contarHasta(int* vector, int numero);
int main(void) {
int array[TAMANO] = { 1, 5, 2, 7, 2, 7, 0, 4, 6, 2 };
fprintf(stdout, "Hay %d posiciones\n", contarHasta(array, 4));
system("pause");
return 0;
}
int contarHasta(int* vector, int numero) {
int i = 0, resultado = 0;
while (resultado != 1) {
if (numero == vector[i]) {
resultado = 1;
return i;
}
i++;
}
}
5.
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#define TAMANO 10
#define PI 3.1415
int main(void) {
int vector1[TAMANO];
int vector2[TAMANO];
int i, suma;
for (i = 0; i < TAMANO; i++) {
vector1[i] = (int) round(i + ((i*TAMANO) / PI));
vector2[i] = (int) round(i + ((i*TAMANO) * PI));
fprintf(stdout, "\nvector1: %d\t vector2: %d", vector1[i], vector2[i]);
}
fprintf(stdout, "\n\n[ ");
for (i = 0; i < TAMANO; i++) {
suma = vector1[i] + vector2[i];
fprintf(stdout, "%d ", suma);
}
fprintf(stdout, "]\n\n");
system("pause");
return 0;
}
He añadido round ya que PI es float, gracias a Dark-eXe por la ayuda
6.
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#define TAMANO 10
#define PI 3.1415
void rellenarVector(int* vector);
int sumatorioVector(int* vector);
int productoVector(int* vector);
int main(void) {
int i, vector1[TAMANO];
// rellenamos el vector con numeros "aleatorios"
rellenarVector(vector1);
for (i = 0; i < TAMANO; i++) {
fprintf(stdout, "%d ", vector1[i]);
}
fprintf(stdout, "\n\nLa suma del vector da %d", sumatorioVector(vector1));
fprintf(stdout, "\n\nEl producto del vector da %d", productoVector(vector1));
// estetica
fprintf(stdout, "\n\n");
system("pause");
return 0;
}
void rellenarVector(int* vector) {
int i;
for (i = 0; i < TAMANO; i++) {
vector[i] = (int) round(i + ((i+TAMANO) / PI));
}
}
int sumatorioVector(int* vector) {
int i, resultado=0;
for (i = 0; i < TAMANO; i++) {
resultado += vector[i];
}
return resultado;
}
int productoVector(int* vector) {
int i, resultado = 1; // se inicia con 1 para que no salga 0
for (i = 0; i < TAMANO; i++) {
resultado *= vector[i];
}
return resultado;
}
7.
#include <stdio.h>
#include <stdlib.h>
#define TAMANO 25
int menu(void);
void iniciarArray(int* array);
void imprimirArray(int* array);
void anadirNumero(int* array, int numero, int posicion);
int comprobarHuecos(int* array);
int sumatorioArray(int* array);
int main(void) {
int vector[TAMANO];
iniciarArray(vector);
int a, numero, posicion;
do {
a = menu();
switch (a) {
case 1:
system("cls");
iniciarArray(vector);
fprintf(stdout, "El contenido ha sido borrado.\n");
system("pause");
break;
case 2:
system("cls");
imprimirArray(vector);
system("pause");
break;
case 3:
system("cls");
fprintf(stdout, "Que numero quieres a%cdir?: ", 164);
fflush(stdin);
fscanf(stdin, "%d", &numero);
fprintf(stdout, "\nEn que posicion quieres colocarlo?: ");
fflush(stdin);
fscanf(stdin, "%d", &posicion);
anadirNumero(vector, numero, posicion);
system("pause");
break;
case 4:
system("cls");
fprintf(stdout, "Hay %d huecos libres.\n", comprobarHuecos(vector));
system("pause");
break;
case 5:
system("cls");
fprintf(stdout, "La suma del array da: %d\n\n", sumatorioArray(vector));
system("pause");
break;
default:
break;
}
} while (6 != a);
}
int menu(void) {
system("cls");
int seleccion;
fprintf(stdout, "1. Borrar todo el contenido.\n");
fprintf(stdout, "2. Mostrar por pantalla el contenido.\n");
fprintf(stdout, "3. A%cadir un numero distinto de 0.\n", 164);
fprintf(stdout, "4. Comprobar cuantos huecos libres quedan.\n");
fprintf(stdout, "5. Mostrar el sumatorio de los valores. \n");
fprintf(stdout, "\n6. Salir\n");
fprintf(stdout, "______\nQue quieres hacer? : ");
fflush(stdin);
fscanf(stdin, "%d", &seleccion);
return seleccion;
}
void iniciarArray(int* array) {
int i;
for (i = 0; i < TAMANO; i++) {
array[i] = 0;
}
}
void imprimirArray(int* array) {
int i;
for (i = 0; i < TAMANO; i++) {
fprintf(stdout, "%d ", array[i]);
}
}
void anadirNumero(int* array, int numero, int posicion) {
array[posicion] = numero;
}
int comprobarHuecos(int* array) {
int i, suma = 0;
for (i = 0; i < TAMANO; i++){
if (0 == array[i]) { suma++; }
}
return suma;
}
int sumatorioArray(int* array) {
int i, resultado = 0;
for (i = 0; i < TAMANO; i++) {
resultado += array[i];
}
return resultado;
}
Ire editando segun acabe ejercicios.