1) Definir dos variables enteras e implementar un procedimiento que incremente en una cantidad cada una de las variables. Mostrar el contenido de las variables en el programa principal.
2) Definir dos variables y dos punteros que hagan referencia a cada una de ellas. Definir un procedimiento para que muestre el contenido de esas variables pero a traves de los punteros.
3) Definir un array de enteros de 10 posiciones.Definir una variable puntero que haga referencia a la primera posición del array.Hacer dos procedimientos, uno para rellenar el array y otro para mostrar su contenido. (De las dos formas, pasando como parametro puntero y pasando como parámetro el array)
4) Completar el anterior definiendo un procedimiento que pida un indice y un valor y modifique el array con ese valor en ese índice.
Y aquí teneis los resultados:
Ejercicio 1:
#include <stdio.h> #include <stdlib.h> void incrementar(int *a, int*b){ *a = *a +100; *b = *b + 100; } int main1(void) { int x; int y; // Pide las dos variables enteras printf("Introduce dos variable enteras x e y: "); fflush(stdout); scanf("%d %d", &x, &y); //Incremento incrementar(&x, &y); //Imprimo las variables ya incrementadas printf("x = %d \ny = %d\n", x, y); fflush(stdout); system("PAUSE"); return EXIT_SUCCESS; }
Ejercicio 2:
#include<stdio.h> #include<stdlib.h> void mostrar(int *m, int *n) { printf("Los datos son %d y %d \n \n", *m, *n); fflush(stdout); } int main2(void) { int a; int b; //Escaneo los datos printf("Introduzca los datos: \n"); fflush(stdout); scanf("%d %d", &a, &b); printf("\n"); //Creo los punteros int *x = &a; int *y = &b; //Llamo al procedimiento. mostrar(x, y); system("PAUSE"); return EXIT_SUCCESS; }
Ejercicio 3:
#include <stdio.h> #include <stdlib.h> void rellenarConArray(int *a[]) { int i; for(i = 0; i < 10; i++) { scanf("%d ", a[i]); } } void rellenarConPunte(int *ptr) { int i; int *aux = ptr; for(i = 0; i < 9; i++) { scanf("%d ", aux); aux++; } } void imprimirConArray(int *a[]) { int i; for(i = 0; i < 10; i++) { printf("%d ", a[i]); } } void imprimirConPunte(int *ptr) { int i; int *aux = ptr; for(i = 0; i < 10; i++) { printf("%d ", *aux); aux++; } } int main(void) { //main del tercero int z[10]; int *a = &z[0]; rellenaConArray(z); mostrarConArray(z); rellenaConPuntero(a); mostrarConPuntero(a);
system("PAUSE"); return EXIT_SUCCESS; }
Ejercicio 4:
void setArray(int a[], int i, int v) { a[i] = v; } void setPuntero(int *a, int i, int v) { int *aux = a + i; *aux= v; } int main(void) { //main del cuarto int z[10]; int *a = &z[0]; rellenaConArray(z); //Aquí los cambios setArray(z, 4, 150); // mostrarConArray(z); rellenaConPuntero(a); //Aquí los cambios setPuntero(a, 6, 400); // mostrarConPuntero(a); }
Disfrutadlos y si tenéis alguna duda/pega/sugerencia/amenaza no dudeis en comentarla aquí abajo. Todos podemos mejorar ;)
Salud
No hay comentarios:
Publicar un comentario