#include <stdio.h>
#include <stdlib.h>
int main(){
int *p1;
int i;
p1 = calloc(5,sizeof(int));
for(i=0; i<5; i++){
printf("Ingrese un numero: ");
scanf("%d",&p1[i]);
}
printf("\n\nEl array es: \n");
for(i=0; i<5; i++){
printf("%d ",p1[i]);
}
printf("\n\n");
system("pause");
return 0;
}
MemDin: Array con calloc
MemDin: Pedir numeros array y ampliar con otros mas
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(){
int *p_array,*p_arrayResultante;
int i;
p_array = malloc(5*sizeof(int));
//Pidiendo los primeros 5 numeros
for(i=0;i<5;i++){
printf("%i. Digite un numero: ",i+1);
scanf("%i",&p_array[i]);
}
//Ampliando el arreglo a 10 numeros
p_arrayResultante = realloc(p_array,10*sizeof(int));
printf("\n\n");
//Pidiendo los 5 numeros siguientes
for(i=5;i<10;i++){
printf("%i. Digite un numero: ",i+1);
scanf("%i",&p_arrayResultante[i]);
}
printf("\n\n\n");
//Imprimiendo el arreglo resultante de 10 numeros
for(i=0;i<10;i++){
printf("%i.\n",p_arrayResultante[i]);
}
free(p_arrayResultante);
return 0;
}
MemDin: Realloc, ampliar a 30 caracteres
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(){
char *p_nombre, *p_nombrecompleto;
p_nombre = malloc(10*sizeof(char));
strcpy(p_nombre,"Jorge ");
printf("El nombre es %s \n",p_nombre);
p_nombrecompleto = realloc(p_nombre,30*sizeof(char));
strcat(p_nombrecompleto, "Curso de C");
printf("El nombre completo es %s\n\n",p_nombrecompleto);
free(p_nombrecompleto);
system("pause");
return 0;
}
MemDin: Asignar 1000 caracteres, double, lf
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define TOPE 1000
int main(){
double *p_array;
int i;
p_array = malloc(TOPE*sizeof(double));
if(p_array==NULL){
printf("No hay memoria suficiente.\n");
return -1;
}
else{
srand(time(NULL));
for(i=0; i<TOPE; i++){
p_array[i] = 1 + rand()%((TOPE+1)-1);
printf("%d. Numero %.lf\n",i+1,p_array[i]);
}
}
system("pause");
return 0;
}
MemDin: Reservar memo con calloc
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(){
char *c, palabra[50];
printf("Digite una palabra: ");
gets(palabra);
c = calloc(strlen(palabra)+1,sizeof(char));
strcpy(c,palabra);
printf("Palabra: %s \n\n", c);
free(c);
printf("Palabra despues de free: %s \n\n", c);
system("pause");
return 0;
}
MemDin: Pedir palabra y reservar memo
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(){
char palabra[50], *p_palabra;
int longitud;
printf("Digite una palabra (string): ");
gets(palabra);
longitud = strlen(palabra);
p_palabra = malloc((longitud+1)*sizeof(char));
strcpy(p_palabra,palabra); // pasa el valor de palabra al apuntador p_palabra
printf("\nPalabra: %s",p_palabra);
free(p_palabra);
printf("\nPalabra dp de free: %s \n\n", p_palabra);
system("pause");
return 0;
}
MemDin: Realloc, ampliar vector
#include <stdio.h>
#include <stdlib.h>
int main(){
int *vector, *vectorConvertido;
int i;
vector = malloc(3*sizeof(int)); // reserva espacio para 3 elementos enteros
vector[0] = 1;
vector[1] = 2;
vector[2] = 3;
fflush(stdin);
printf("Vector de 3 elementos:\n");
for(i=0; i<3; i++){
printf("%d ",vector[i]);
}
// Convertir vector
vectorConvertido = realloc(vector,5*sizeof(int)); // Ampliar el vector a 5 elementos
vectorConvertido[3] = 4;
vectorConvertido[4] = 5;
fflush(stdin);
printf("\n\nVector ampliado a 5 elementos:\n");
for(i=0; i<5; i++){
fflush(stdin);
printf("%d ",vectorConvertido[i]);
}
system("pause");
return 0;
}
MemDin: Liberar memoria, free
#include <stdio.h>
#include <stdlib.h>
int main(){
int *p1;
p1 = malloc(sizeof(int));
if(p1 == NULL){
printf("Memoria llena.\n");
}
else{
printf("Hay espacio disponible.\n");
*p1 = 15;
printf("\n\n%d ",*p1);
}
free(p1);
printf("\n\n%d ",*p1);
system("pause");
return 0;
}
MemDin: Malloc, reservar para nombre
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(){
char nombre[20], *pnombre;
int longitud;
strcpy(nombre, "Jorge");
longitud = strlen(nombre);
printf("%d", longitud);
pnombre = malloc((longitud+1)*sizeof(char));
strcpy(pnombre,nombre);
printf("Nombre: %s", pnombre);
system("pause");
return 0;
}
MemDin: Malloc, rellenar arreglo
#include <stdio.h>
#include <stdlib.h>
int main(){
int i;
int *p1 = malloc(4*sizeof(int)); //asigna para arreglo de 4 int
int *p2 = malloc(sizeof(int[4])); // otra forma de asignar para arreglo de 4 int
int *p3 = malloc(4*sizeof *p3); // otra forma de lo mismo
if(p1){
for(i=0; i<4; i++){
p1[i] = i*i;
for(i=0; i<4; i++){
printf("p1[%d] == %d\n",i, p1[i]);
}
}
}
free(p1);
free(p2);
free(p3);
system("pause");
return 0;
}
MemDin: Malloc, entero, float, char
#include <stdio.h>
#include <stdlib.h>
int main(){
int *a;
float *b;
char *c;
//int x;
a = malloc(sizeof(int));
b = malloc(sizeof(float));
c = malloc(sizeof(char));
*a = 5;
*b = 5.54;
*c = 'h';
printf("Un entero: %d \n",*a);
printf("Un float: %.2f \n",*b);
printf("Un caracter: %c \n",*c);
//x = sizeof(int);
//printf("%d ",x);
system("pause");
return 0;
}
MemDin: Malloc, array
#include <stdio.h>
#include <stdlib.h>
int main(){
int * array;
array = (int*)malloc(sizeof(int)*8);
if(array != NULL){
printf("Memoria no se ha podido asignar.\n");
}
else{
printf("Memoria asignada.\n");
}
free(array);
system("pause");
return 0;
}
MemDin: Malloc, reserva entero
#include <stdio.h>
#include <stdlib.h>
int main(){
int* entero;
entero = (int*)malloc(4);
if(entero != NULL){
printf("La memoria se ha otorgado.\n");
}
else{
printf("Error al asignar memoria.\n");
}
system("pause");
return 0;
}
Recursion: Fibonacci recursivo
#include <stdio.h>
int fibonacci();
int main(){
int num, i;
printf("Ingrese un numero: ");
scanf("%d",&num);
for(i = 0; i<num; i++){
printf("%d ",fibonacci(i));
}
system("pause");
return 0;
}
int fibonacci(n){
if(n==0 || n==1){
return 1;
}
else{
return (fibonacci(n-1)+fibonacci(n-2));
}
}
String: largo cadena. strlen
#include <stdio.h>
#include <string.h>
int main(){
char array[200];
int largo;
printf("Escribe algo: ");
gets(array);
largo = strlen(array);
printf("El largo del texto es %d caracteres\n",largo);
system("pause");
return 0;
}
String: Primeras letras de cadena
#include <stdio.h>
#include <string.h>
int main(){
char texto1[40], texto2[40], texto3[30];
printf("Escribe una frase: ");
gets(texto1);
strcpy(texto2,texto1);
printf("\n\nUna copia de tu frase es: %s ", texto2);
strncpy(texto3, texto1, 10);
printf("\n\nY sus 10 primeras letras son %s\n", texto3);
system("pause");
return 0;
}
String: Invertir cadena. strrev
#include <stdio.h>
#include <string.h>
int main(){
char cad1[100];
printf("Ingresa palabra:");
gets(cad1);
strrev(cad1);
printf("Cadena invertida %s: ",cad1);
system("pause");
return 0;
}
String: Insertar subca en cad
#include <stdio.h>
#include <string.h>
void insertar(char cadena[], int longitud);
int main(){
char cadena1[200];
int tamano;
printf("Introduce una cadena: ");
gets(cadena1);
tamano = strlen(cadena1);
insertar(cadena1,tamano);
system("pause");
return 0;
}
void insertar(char cadena[], int longitud){
char aux[200], aux2[200], aux3[200];
int i, p, min, max, longaux;
printf("Introduce texto que quieres insertar: ");
gets(aux);
longaux = strlen(aux);
aux[longaux-1] = '\0';
printf("Inserte la posicion en donde quiere la insercion: ");
scanf("%d",&p);
fflush(stdin);
for(i=0; i<p; i++){
aux2[i]=cadena[i];
}
longaux = strlen(aux2);
aux2[longaux] = '\0';
strcat(aux2,aux);
printf("aux2+aux = %s\n",aux2);
max = longitud-p;
for(i=0; i<max; i++){
aux3[i] = cadena[p];
p++;
}
strcat(aux2,aux3);
printf("Final: %s",aux2);
}
String: Eliminar caracteres
#include <stdio.h>
#include <string.h>
void eliminar(char cadena[]);
int main(){
char texto[200];
printf("Escriba un texto: ");
gets(texto);
eliminar(texto);
system("pause");
return 0;
}
void eliminar(char cadena[]){
char aux[200];
int n, i, longitud, resto;
printf("Cuantos caracteres quieres eliminar: ");
scanf("%d",&n);
fflush(stdin);
longitud = strlen(cadena);
resto = longitud - n;
if(n<longitud){
for(i=0; i<resto; i++){
aux[i] = cadena[n];
n++;
}
printf("Su texto es: %s\n longitud = %d\n",aux,resto);
}
else{
printf("No se pueden eliminar mas caracteres de los que ha escrito.\n\n");
}
}
String: Decimal a cadena
#include <stdio.h>
#include <stdlib.h>
int main(){
int punto_decimal, signo;
char *cadena;
double valor = 3.141592653;
cadena = _fcvt(valor, 8, &punto_decimal, &signo);
printf("Valor: %.29f, cadena: '%s', punto decimal: %d, signo: %d\n", valor, cadena, punto_decimal, signo);
system("pause");
return 0;
}
String: contar letras a, as, del
#include <stdio.h>
#include <string.h>
int main(){
char texto[100];
int i, a=0, as=0, del=0, largo;
printf("Ingresa un texto: ");
gets(texto);
largo = strlen(texto);
while(texto[i] != '\n'){
if(texto[i] == 'a'){
a++;
if(texto[i+1] == 's'){
as++;
}
}
if((texto[i] == 'd') && (texto[i+1] == 'e') && (texto[i+2] == 'l')){
del++;
}
i++;
}
printf("La letra a aparece %d veces\n",a);
printf("'as' aparece %d veces\n",as);
printf("'del' aparece %d veces\n",del);
system("pause");
return 0;
}
Suscribirse a:
Entradas (Atom)