#include < stdio.h >
void swap(int *px, int *py);
int main()
{
int x, y;
x = 10;
y = 20;
printf("x=%d\ty=%d\n",x,y);
swap(&x, &y);
printf("x=%d\ty=%d\n",x,y);
}
void swap(int *px, int *py)
{
int temp;
temp = *px; /* guarda el valor de la direccion x */
*px = *py; /* pone y en x */
*py = temp; /* pone x en y */
}
Sean Bienvenidos a su Espacio en el cual encontraran Articulos relacionados a la Seguridad Informatica, Tecnologias Microsoft y nuevas tendencias Tecnologicas.
Translate
martes, 8 de enero de 2013
Metodo de la Burbuja(Quicksort) en C.
#include< stdio.h >
void main()
{
int a[10],j,i,t;
puts("Teclea 10 enteros separados por un enter!!");
for(j=0;j<10 br="br" j="j"> scanf("%d",&a[j]);
putchar('\n');
for(j=0;j<9 br="br" j="j"> for(i=9;i>j;i--)
{
if(a[i] {
t=a[i-1];
a[i-1]=a[i];
a[i]=t;
}
}
for (i=0;i<10 br="br" i="i"> printf("%d \n",a[i]);
}10>9>10>
void main()
{
int a[10],j,i,t;
puts("Teclea 10 enteros separados por un enter!!");
for(j=0;j<10 br="br" j="j"> scanf("%d",&a[j]);
putchar('\n');
for(j=0;j<9 br="br" j="j"> for(i=9;i>j;i--)
{
if(a[i] {
t=a[i-1];
a[i-1]=a[i];
a[i]=t;
}
}
for (i=0;i<10 br="br" i="i"> printf("%d \n",a[i]);
}10>9>10>
Apuntadores en C.
#include< stdio.h >
void incrementa(int*);
void main()
{
int x=1;
printf("%d\n",x);
incrementa(&x);//& da la direccion en memoria de esa variable
printf("%d\n",x);
}
incrementa (int*x)
{
// printf("%d\n",x);
*x=5;//* se refiere al contenido de variable
// cambiar valor por referencia si modifica el valor de esta variable en otras funciones del programa (pase de parametros por referencia)
}
//un apuntador es una variable entera que contiene una direccion de memoria
void incrementa(int*);
void main()
{
int x=1;
printf("%d\n",x);
incrementa(&x);//& da la direccion en memoria de esa variable
printf("%d\n",x);
}
incrementa (int*x)
{
// printf("%d\n",x);
*x=5;//* se refiere al contenido de variable
// cambiar valor por referencia si modifica el valor de esta variable en otras funciones del programa (pase de parametros por referencia)
}
//un apuntador es una variable entera que contiene una direccion de memoria
Corrimientos de bits en C.
#include< stdio.h >
void corrimientos(int);
void main()
{
int a=1,b=0;
corrimientos(a);
}
void corrimientos(int a)
{
while(a)
{a=a<<1 br="br"> printf("%d\n", a);
b++;
}
printf("Los enteros tienen %d bits de espacio.",b);
return;
}
1>
void corrimientos(int);
void main()
{
int a=1,b=0;
corrimientos(a);
}
void corrimientos(int a)
{
while(a)
{a=a<<1 br="br"> printf("%d\n", a);
b++;
}
printf("Los enteros tienen %d bits de espacio.",b);
return;
}
1>
Llenar un arreglo en C.
/*
* Permite llenar un arreglo, mostrarlo
* sumar todos sus elementos
* determinar el elemento que es mayor
* y buscar un elemento determinado.
*/
#include< stdio.h >
//función para llenar el arreglo
void llenar(int A[], int n)
{
int i;
int valor;
for(i=0; i {
printf("Ingrese valor %d : ",i);
scanf("%d",&valor);
A[i] = valor;
}
}
//Función para mostrar el arreglo
void mostrar(int A[], int n)
{
int i;
for(i=0; i {
printf("Valor A[%d] = %d\n",i,A[i]);
}
}
//función para sumar los elementos del arreglo
int suma(int A[], int n)
{
int i;
int s = 0;
for(i=0; i {
s = s + A[i];
}
return s;
}
//Función para determinar el elemento mayor
//del arreglo
int mayor(int A[], int n)
{
int i;
int mayorval = A[0];
for(i=0; i {
if(A[i] > mayorval)
{
mayorval = A[i];
}
}
return mayorval;
}
//Función para buscar un elemento
int buscar(int A[], int n, int e)
{
//Definimos variables
int i;
int esta = 0;
//Ciclo de análisis
for(i=0; i {
//Fácil si el valor del elemento
//es igual al parámetro e recibido
if(A[i] == e)
{
//asignamos a la variable
//el valor de i que es el
//numero de elemento que es igual
esta = i;
//Rompemos el bucle y salimos
break;
}
}
//Regresamos como valor de la función
//el valor de la variable donde fué hallado
//o de lo contrario cero que es su inicialización.
return esta;
}
//Procedimiento principal
int main()
{
//Definimos el arreglo
int arreglo[100];
//Variables para el total de elementos y valor buscado
int totalelementos, valorbuscado;
//Solicitamos info
printf("Ingrese cantidad de valores a examinar : ");
scanf("%d",&totalelementos);
//Ejecutamos las funciones llenar y mostrar.
llenar(arreglo,totalelementos);
mostrar(arreglo,totalelementos);
//Mostramos un título y ejecutamos la función sumar.
printf("La suma total de valores es %d\n",suma(arreglo,totalelementos));
//Mostramos info y llamamos a la función mayor
printf("El mayor valor es %d\n",mayor(arreglo,totalelementos));
//Solicitamos un valor para buscar
printf("Ingrese valor a buscar : ");
scanf("%d",&valorbuscado);
//Variable para obtener el resultado
int resultado = 0;
resultado = buscar(arreglo,totalelementos,valorbuscado);
//Si es mayor a cero
if (resultado>0)
{
//Informamos que fué hallado
printf("El valor %d fue hallado en la posicion %d\n",valorbuscado,resultado);
}
else
{
//Informamos que no fué hallado.
printf("El valor %d no se encuentre en el array\n",valorbuscado);
}
}
* Permite llenar un arreglo, mostrarlo
* sumar todos sus elementos
* determinar el elemento que es mayor
* y buscar un elemento determinado.
*/
#include< stdio.h >
//función para llenar el arreglo
void llenar(int A[], int n)
{
int i;
int valor;
for(i=0; i
printf("Ingrese valor %d : ",i);
scanf("%d",&valor);
A[i] = valor;
}
}
//Función para mostrar el arreglo
void mostrar(int A[], int n)
{
int i;
for(i=0; i
printf("Valor A[%d] = %d\n",i,A[i]);
}
}
//función para sumar los elementos del arreglo
int suma(int A[], int n)
{
int i;
int s = 0;
for(i=0; i
s = s + A[i];
}
return s;
}
//Función para determinar el elemento mayor
//del arreglo
int mayor(int A[], int n)
{
int i;
int mayorval = A[0];
for(i=0; i
if(A[i] > mayorval)
{
mayorval = A[i];
}
}
return mayorval;
}
//Función para buscar un elemento
int buscar(int A[], int n, int e)
{
//Definimos variables
int i;
int esta = 0;
//Ciclo de análisis
for(i=0; i
//Fácil si el valor del elemento
//es igual al parámetro e recibido
if(A[i] == e)
{
//asignamos a la variable
//el valor de i que es el
//numero de elemento que es igual
esta = i;
//Rompemos el bucle y salimos
break;
}
}
//Regresamos como valor de la función
//el valor de la variable donde fué hallado
//o de lo contrario cero que es su inicialización.
return esta;
}
//Procedimiento principal
int main()
{
//Definimos el arreglo
int arreglo[100];
//Variables para el total de elementos y valor buscado
int totalelementos, valorbuscado;
//Solicitamos info
printf("Ingrese cantidad de valores a examinar : ");
scanf("%d",&totalelementos);
//Ejecutamos las funciones llenar y mostrar.
llenar(arreglo,totalelementos);
mostrar(arreglo,totalelementos);
//Mostramos un título y ejecutamos la función sumar.
printf("La suma total de valores es %d\n",suma(arreglo,totalelementos));
//Mostramos info y llamamos a la función mayor
printf("El mayor valor es %d\n",mayor(arreglo,totalelementos));
//Solicitamos un valor para buscar
printf("Ingrese valor a buscar : ");
scanf("%d",&valorbuscado);
//Variable para obtener el resultado
int resultado = 0;
resultado = buscar(arreglo,totalelementos,valorbuscado);
//Si es mayor a cero
if (resultado>0)
{
//Informamos que fué hallado
printf("El valor %d fue hallado en la posicion %d\n",valorbuscado,resultado);
}
else
{
//Informamos que no fué hallado.
printf("El valor %d no se encuentre en el array\n",valorbuscado);
}
}
Gauss-Jordan en C.
/*El programa tiene que resolver un sistema de ecuaciones de n incognitas
usando el metodo Gauss-Jordan... La función diagonal es la que va a llevar a cabo el método.. se pide como entrada el numero de incognitas del sistema y después los coeficientes... metes primero el numerador, das espacio, metes el denominador y das enter.. y así hasta que termines con la matriz
*/
#include< stdio.h >
//esta es mi estructura de fraccion...
typedef struct {
int numerador;
int denominador;
}fraccion;
fraccion suma(fraccion,fraccion);//suma dos fracciones
fraccion resta(fraccion,fraccion);//resta dos fracciones
fraccion mult(fraccion,fraccion);//multiplica dos fracciones
fraccion div(fraccion,fraccion);//divide dos fracciones
fraccion simplifica(fraccion);//simplifica una fraccion
void diagonal(fraccion [][10],int);//esta funcion es la del metodo gauss-jordan
void leemat(fraccion[][10],int);//esta funcion llena de datos una matriz de tipo fraccion
void impmat(fraccion[][10],int);//esta funcion imprime la matriz de tipo fraccion
int mcd(int,int);//calcula el maximo comun divisor entre dos numeros usando algoritmo de Euclides
void main()
{
fraccion mat[11][10],n1,n2,r;
int n;
puts("Introduzca el número de incognitas de su sistema: ");
scanf("%d",&n);
puts("Introduzca su matriz aumentada:");
leemat(mat,n);
diagonal(mat,n);
puts("Su matriz diagonalizada es: \n");
impmat(mat,n);
//bloque de prueba de operaciones con fracciones
/*
puts("Dame la primer fraccion (parte entera, parte fraccion)");
scanf("%d %d",&n1.numerador,&n1.denominador);
puts("Dame la segunda fraccion (parte entera, parte fraccion)");
scanf("%d %d",&n2.numerador,&n2.denominador);
r=suma(n1,n2);
printf("Suma: %d/%d \n",r.numerador,r.denominador);
r=resta(n1,n2);
printf("Resta: %d/%d \n",r.numerador,r.denominador);
r=mult(n1,n2);
printf("Multiplicacion: %d/%d \n",r.numerador,r.denominador);
r=div(n1,n2);
printf("Division: %d/%d \n",r.numerador,r.denominador); */
}
fraccion suma(fraccion n1,fraccion n2)
{
fraccion r;
if((n1.numerador+n2.numerador==0)&&(n1.denominador==n2.denominador))
{r.numerador=0;r.denominador=1;return r;}
else
{r.numerador=n1.numerador*n2.denominador+n2.numerador*n1.denominador;
r.denominador=n1.denominador*n2.denominador;
return r;/*simplifica(r);*/}
}
fraccion resta(fraccion n1,fraccion n2)
{
fraccion r;
if((n1.numerador==n2.numerador)&&(n1.denominador==n2.denominador))
{r.numerador=0;r.denominador=1;return r;}
else
{ r.numerador=n1.numerador*n2.denominador-((n2.numerador)*(n1.denominador));
r.denominador=n1.denominador*n2.denominador;
return simplifica(r);}
}
fraccion mult(fraccion n1,fraccion n2)
{
fraccion r;
if((n1.numerador==0)||(n2.numerador==0))
{r.numerador=0;r.denominador=1;return r;}
else
{r.numerador=n1.numerador*n2.numerador;
r.denominador=n1.denominador*n2.denominador;
return simplifica(r);
}
}
fraccion div(fraccion n1,fraccion n2)
{
fraccion r;
int val=0;
if(n2.numerador==0)
{puts("Error de división entre cero"); return r;}
else if((n1.numerador<0 amp="amp" n2.numerador="n2.numerador">0))//solo el primero negativo
{val=1;
n1.numerador=n1.numerador*(-1);
}
else if((n2.numerador<0 amp="amp" n1.numerador="n1.numerador">0))//solo el segundo negativo
{val=1;
n2.numerador=n2.numerador*(-1);
}
else if((n2.numerador<0 amp="amp" br="br" dos="dos" los="los" n1.numerador="n1.numerador" negativos="negativos"> {
n1.numerador=n1.numerador*(-1);
n2.numerador=n2.numerador*(-1);
}
r.numerador=n1.numerador*n2.denominador;
r.denominador=n1.denominador*n2.numerador;
if(val)
r.numerador=r.numerador*(-1);
return simplifica(r);
}
fraccion simplifica(fraccion r)
{
fraccion s;
int val=0,x;
if(r.numerador){
x=mcd(abs(r.numerador),abs(r.denominador));
s.numerador=r.numerador/x;
s.denominador=r.denominador/x;
return s;
}
else{s.numerador=0;
s.denominador=1;
return s;
}
}
int mcd(int a, int b){
if(a a^=b;
b^=a;
a^=b;
}
int c=a%b;
while(c){
a=b;
b=c;
c=a%b;
}
return b;
}
void leemat(fraccion mat[][10],int n)
{
int i,j;
for(i=0;i for(j=0;j scanf("%d %d",&mat[j][i].numerador,&mat[j][i].denominador);
}
void impmat(fraccion mat[][10],int n)
{
int i,j;
for(i=0;i {for(j=0;j printf("%d/%d\t",mat[j][i].numerador,mat[j][i].denominador);
putchar('\n');
}
}
void diagonal(fraccion mat[][10],int n)
{
// Aplicación del método de Gauss-Jordan
int r,c,c2,i,j,k=0,r2,c3;
fraccion p,tem[10],p2,m;
//Ceros en triangulito de abajo (:
for(r=0;r { p=mat[r][r];//pivote 1
for(c=0;c<=n;c++)
{ mat[c][r]=div(mat[c][r],p);//
}
for(r2=r+1;r2 {
p2=mat[r][r2];//pivote 2
for(c2=0;c2<=n;c2++)
{tem[c2]=mult(p2,mat[c2][r]);
mat[c2][r2]=resta(tem[c2],mat[c2][r2]);
}
}
}
//Ceros en triangulito de arriba
for(c=n-1;c>=0;c--)
for(r=c-1;r>=0;r--)
{
p=mat[c][r];
for(c2=0;c2<=n;c2++)
{ tem[c2]=mult(mat[c2][r+1],p);
mat[c2][r]=resta(mat[c2][r],tem[c2]);
}
}
if(n==3)
{
mat[3][0]=resta(mat[3][0],mult(mat[2][0],mat[3][2]));;
mat[2][0].numerador=0;
mat[2][0].denominador=1;
}
else if(n==4)
{
mat[4][1]=resta(mat[4][1],mult(mat[4][3],mat[3][1]));
mat[3][1].numerador=0;
mat[3][1].denominador=1;
p=mult(mat[2][2],mat[2][0]);
p2=mult(mat[4][2],mat[2][0]);
mat[2][0]=resta(mat[2][0],p);
mat[4][0]=resta(mat[4][0],p2);
p=mult(mat[3][0],mat[3][3]);
p2=mult(mat[3][0],mat[4][3]);
mat[3][0]=resta(mat[3][0],p);
mat[4][0]=resta(mat[4][0],p2);
}
} 0>0>0>
usando el metodo Gauss-Jordan... La función diagonal es la que va a llevar a cabo el método.. se pide como entrada el numero de incognitas del sistema y después los coeficientes... metes primero el numerador, das espacio, metes el denominador y das enter.. y así hasta que termines con la matriz
*/
#include< stdio.h >
//esta es mi estructura de fraccion...
typedef struct {
int numerador;
int denominador;
}fraccion;
fraccion suma(fraccion,fraccion);//suma dos fracciones
fraccion resta(fraccion,fraccion);//resta dos fracciones
fraccion mult(fraccion,fraccion);//multiplica dos fracciones
fraccion div(fraccion,fraccion);//divide dos fracciones
fraccion simplifica(fraccion);//simplifica una fraccion
void diagonal(fraccion [][10],int);//esta funcion es la del metodo gauss-jordan
void leemat(fraccion[][10],int);//esta funcion llena de datos una matriz de tipo fraccion
void impmat(fraccion[][10],int);//esta funcion imprime la matriz de tipo fraccion
int mcd(int,int);//calcula el maximo comun divisor entre dos numeros usando algoritmo de Euclides
void main()
{
fraccion mat[11][10],n1,n2,r;
int n;
puts("Introduzca el número de incognitas de su sistema: ");
scanf("%d",&n);
puts("Introduzca su matriz aumentada:");
leemat(mat,n);
diagonal(mat,n);
puts("Su matriz diagonalizada es: \n");
impmat(mat,n);
//bloque de prueba de operaciones con fracciones
/*
puts("Dame la primer fraccion (parte entera, parte fraccion)");
scanf("%d %d",&n1.numerador,&n1.denominador);
puts("Dame la segunda fraccion (parte entera, parte fraccion)");
scanf("%d %d",&n2.numerador,&n2.denominador);
r=suma(n1,n2);
printf("Suma: %d/%d \n",r.numerador,r.denominador);
r=resta(n1,n2);
printf("Resta: %d/%d \n",r.numerador,r.denominador);
r=mult(n1,n2);
printf("Multiplicacion: %d/%d \n",r.numerador,r.denominador);
r=div(n1,n2);
printf("Division: %d/%d \n",r.numerador,r.denominador); */
}
fraccion suma(fraccion n1,fraccion n2)
{
fraccion r;
if((n1.numerador+n2.numerador==0)&&(n1.denominador==n2.denominador))
{r.numerador=0;r.denominador=1;return r;}
else
{r.numerador=n1.numerador*n2.denominador+n2.numerador*n1.denominador;
r.denominador=n1.denominador*n2.denominador;
return r;/*simplifica(r);*/}
}
fraccion resta(fraccion n1,fraccion n2)
{
fraccion r;
if((n1.numerador==n2.numerador)&&(n1.denominador==n2.denominador))
{r.numerador=0;r.denominador=1;return r;}
else
{ r.numerador=n1.numerador*n2.denominador-((n2.numerador)*(n1.denominador));
r.denominador=n1.denominador*n2.denominador;
return simplifica(r);}
}
fraccion mult(fraccion n1,fraccion n2)
{
fraccion r;
if((n1.numerador==0)||(n2.numerador==0))
{r.numerador=0;r.denominador=1;return r;}
else
{r.numerador=n1.numerador*n2.numerador;
r.denominador=n1.denominador*n2.denominador;
return simplifica(r);
}
}
fraccion div(fraccion n1,fraccion n2)
{
fraccion r;
int val=0;
if(n2.numerador==0)
{puts("Error de división entre cero"); return r;}
else if((n1.numerador<0 amp="amp" n2.numerador="n2.numerador">0))//solo el primero negativo
{val=1;
n1.numerador=n1.numerador*(-1);
}
else if((n2.numerador<0 amp="amp" n1.numerador="n1.numerador">0))//solo el segundo negativo
{val=1;
n2.numerador=n2.numerador*(-1);
}
else if((n2.numerador<0 amp="amp" br="br" dos="dos" los="los" n1.numerador="n1.numerador" negativos="negativos"> {
n1.numerador=n1.numerador*(-1);
n2.numerador=n2.numerador*(-1);
}
r.numerador=n1.numerador*n2.denominador;
r.denominador=n1.denominador*n2.numerador;
if(val)
r.numerador=r.numerador*(-1);
return simplifica(r);
}
fraccion simplifica(fraccion r)
{
fraccion s;
int val=0,x;
if(r.numerador){
x=mcd(abs(r.numerador),abs(r.denominador));
s.numerador=r.numerador/x;
s.denominador=r.denominador/x;
return s;
}
else{s.numerador=0;
s.denominador=1;
return s;
}
}
int mcd(int a, int b){
if(a a^=b;
b^=a;
a^=b;
}
int c=a%b;
while(c){
a=b;
b=c;
c=a%b;
}
return b;
}
void leemat(fraccion mat[][10],int n)
{
int i,j;
for(i=0;i
}
void impmat(fraccion mat[][10],int n)
{
int i,j;
for(i=0;i
putchar('\n');
}
}
void diagonal(fraccion mat[][10],int n)
{
// Aplicación del método de Gauss-Jordan
int r,c,c2,i,j,k=0,r2,c3;
fraccion p,tem[10],p2,m;
//Ceros en triangulito de abajo (:
for(r=0;r
for(c=0;c<=n;c++)
{ mat[c][r]=div(mat[c][r],p);//
}
for(r2=r+1;r2
p2=mat[r][r2];//pivote 2
for(c2=0;c2<=n;c2++)
{tem[c2]=mult(p2,mat[c2][r]);
mat[c2][r2]=resta(tem[c2],mat[c2][r2]);
}
}
}
//Ceros en triangulito de arriba
for(c=n-1;c>=0;c--)
for(r=c-1;r>=0;r--)
{
p=mat[c][r];
for(c2=0;c2<=n;c2++)
{ tem[c2]=mult(mat[c2][r+1],p);
mat[c2][r]=resta(mat[c2][r],tem[c2]);
}
}
if(n==3)
{
mat[3][0]=resta(mat[3][0],mult(mat[2][0],mat[3][2]));;
mat[2][0].numerador=0;
mat[2][0].denominador=1;
}
else if(n==4)
{
mat[4][1]=resta(mat[4][1],mult(mat[4][3],mat[3][1]));
mat[3][1].numerador=0;
mat[3][1].denominador=1;
p=mult(mat[2][2],mat[2][0]);
p2=mult(mat[4][2],mat[2][0]);
mat[2][0]=resta(mat[2][0],p);
mat[4][0]=resta(mat[4][0],p2);
p=mult(mat[3][0],mat[3][3]);
p2=mult(mat[3][0],mat[4][3]);
mat[3][0]=resta(mat[3][0],p);
mat[4][0]=resta(mat[4][0],p2);
}
}
Numeros pares e impares en C.
#include< stdio.h >
int main(){
char a;
puts("Introduzca un número: ");
a=getchar();
if(a%2==0)
puts("El número es par.");
else
puts("El número es impar.");
//if((c>='0')&&(c<='9'))
// if(c-'0'%2==1)
// puts("Impar");
// else puts("Par");
return 0;
}
int main(){
char a;
puts("Introduzca un número: ");
a=getchar();
if(a%2==0)
puts("El número es par.");
else
puts("El número es impar.");
//if((c>='0')&&(c<='9'))
// if(c-'0'%2==1)
// puts("Impar");
// else puts("Par");
return 0;
}
Dia del Año en C.
#include < stdio.h >
void leer_entrada(int *pm, int *pd, int *pa);
int convertir(int mm, int dd, int aa);
int main()
{
int mm,dd,aa;
int dia_semana;
static char *diasemana[] = { "Domingo", "Lunes", "Martes", "Miercoles", "Jueves", "Sabado" };
static char *mes[] = { "Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre" };
printf("Rutina de conversion de fecha \n Para parar, introducir 0 0 0");
leer_entrada(&mm, &dd, &aa);
//Convertir fecha a dia numerico de la semana
while (mm > 0)
{
dia_semana = convertir (dd, mm, aa);
printf("\n El dia fue %s, %d %s de %d \n",diasemana[dia_semana], dd,mes[mm-1], aa);
leer_entrada(&mm, &dd, &aa);
}
}
void leer_entrada(int *pm, int *pd, int *pa) //Convertir una fecha en el dia de la semana.
{
printf("\n Introducir MM DD AAAA: ");
scanf("%d %d %d", pm, pd, pa);
system("clear"); //Sirve para limpiar la pantalla en Linux.
return;
}
int convertir (int mm, int dd, int aa) //Convertir una fecha en el dia de la semana.
{
long ndias; //Num de dias desde el comienzo de 1900.
long nciclos; //Num de cliclos de 4 años despues de 1900.
int nanios; //Num de años despues del ultimo cilico de 4 años.
int dia; //Dia de la semana {0,1,2,3,4,5,6}
//Conversiones numericas
aa-=1900;
ndias = (long) (30.42 * (mm - 1)) + dd; //Dia aprox del año.
if(mm == 2) ++ndias; //Ajuste para febrero.
if((mm > 2) && (mm < 8)) --ndias; //Ajuste para marzo-julio.
if((aa % 4 == 0) && (mm > 2)) ++ndias; //Ajuste para el año bisiesto.
nciclos = aa / 4; //Ciclos de 4 años despues de 1900.
ndias += nciclos * 1461; //Añadir dias por ciclos de 4 años.
nanios = aa % 4; //Años despues del ultimo ciclo de 4 años.
if(nanios > 0) //Añadir dias por años despues del ultimo ciclo.
ndias += 365 * nanios +1;
if(ndias > 59) --ndias; //Ajustar para 1900 (No año bisiesto).
dia = ndias % 7;
return(dia);
}
void leer_entrada(int *pm, int *pd, int *pa);
int convertir(int mm, int dd, int aa);
int main()
{
int mm,dd,aa;
int dia_semana;
static char *diasemana[] = { "Domingo", "Lunes", "Martes", "Miercoles", "Jueves", "Sabado" };
static char *mes[] = { "Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre" };
printf("Rutina de conversion de fecha \n Para parar, introducir 0 0 0");
leer_entrada(&mm, &dd, &aa);
//Convertir fecha a dia numerico de la semana
while (mm > 0)
{
dia_semana = convertir (dd, mm, aa);
printf("\n El dia fue %s, %d %s de %d \n",diasemana[dia_semana], dd,mes[mm-1], aa);
leer_entrada(&mm, &dd, &aa);
}
}
void leer_entrada(int *pm, int *pd, int *pa) //Convertir una fecha en el dia de la semana.
{
printf("\n Introducir MM DD AAAA: ");
scanf("%d %d %d", pm, pd, pa);
system("clear"); //Sirve para limpiar la pantalla en Linux.
return;
}
int convertir (int mm, int dd, int aa) //Convertir una fecha en el dia de la semana.
{
long ndias; //Num de dias desde el comienzo de 1900.
long nciclos; //Num de cliclos de 4 años despues de 1900.
int nanios; //Num de años despues del ultimo cilico de 4 años.
int dia; //Dia de la semana {0,1,2,3,4,5,6}
//Conversiones numericas
aa-=1900;
ndias = (long) (30.42 * (mm - 1)) + dd; //Dia aprox del año.
if(mm == 2) ++ndias; //Ajuste para febrero.
if((mm > 2) && (mm < 8)) --ndias; //Ajuste para marzo-julio.
if((aa % 4 == 0) && (mm > 2)) ++ndias; //Ajuste para el año bisiesto.
nciclos = aa / 4; //Ciclos de 4 años despues de 1900.
ndias += nciclos * 1461; //Añadir dias por ciclos de 4 años.
nanios = aa % 4; //Años despues del ultimo ciclo de 4 años.
if(nanios > 0) //Añadir dias por años despues del ultimo ciclo.
ndias += 365 * nanios +1;
if(ndias > 59) --ndias; //Ajustar para 1900 (No año bisiesto).
dia = ndias % 7;
return(dia);
}
Funciones diversas en C.
//Funcion para calcular el MOD (Residuo)
int mod (int a, int b)
{
if (a>0 && b>0 && a>b)
{
int z;
z= (a-((a/b)*b));
return z;
}
if (a>0 && b>0 && aa)
{
return a;
}
if (a<0 a="a" amp="amp" b="b">b)
{
return a;
}
if (a<0 a="a" amp="amp" b="b" br="br"> {
int z;
a=a*(-1);
b=b*(-1);
z= (a-((a/b)*b))*(-1);
return z;
}
if (a>0 && b<0 br="br"> {
int z;
b=(b*-1);
z=((a-((a/b)*b))-b);
return z;
}
if (a<0 amp="amp" b="b">0)
{
int z;
a=(a*-1);
z=(b-(a-((a/b)*b)));
return z;
}
}
//Funcion maximo comun divisor recursividad
int mcd(int a,int b)
{
if(b==0)
return a;
else
return mcd(b,a%b);
}
//Funcion recursiva para sumar los 10 primeros numeros
int suma(int n) andres pico
{
if(n==0)
return 0;
else
return n+suma(n-1);
}
//Funcion recursiva para elevar un numero a un exponente
int exp(int b,int e)
{
if(e==0)
return 1;
else
return b*exp(b,e-1);
}
//Funcion para calcular el numero fibonacci
int fibo(int n)
{
if ((n==0)||(n==1))
return n;
else
return fibo(n-1)+fibo(n-2);
}
//FUNCION PARA MULTIPLICAR DOS NUMEROS
int multiplicar(int n,int b)
{
if(b==0)
return 0;
else
return multiplicar(n,b-1)+n;
}
//Funcion de los factores primos
int factores_primos(int n,int b)
{
if (n==1)
return 1;
else
{
if(n%b==0)
return b+factores_primos((n/b),b);
if(n%b!=0)
factores_primos(n,b+1);
}
}
//Funcion para invertir un numero
int inverso(int num)
{
if (num < 10)
return num;
else
return mod(num,10) * exp(10, digitos(num) - 1) + inverso(num / 10);
}
//Funcion para contar los digitos
int digitos(int num)
{
if (num < 10)
return 1;
return 1 + digitos(num/10);
}0>0>0>0>
int mod (int a, int b)
{
if (a>0 && b>0 && a>b)
{
int z;
z= (a-((a/b)*b));
return z;
}
if (a>0 && b>0 && aa)
{
return a;
}
if (a<0 a="a" amp="amp" b="b">b)
{
return a;
}
if (a<0 a="a" amp="amp" b="b" br="br"> {
int z;
a=a*(-1);
b=b*(-1);
z= (a-((a/b)*b))*(-1);
return z;
}
if (a>0 && b<0 br="br"> {
int z;
b=(b*-1);
z=((a-((a/b)*b))-b);
return z;
}
if (a<0 amp="amp" b="b">0)
{
int z;
a=(a*-1);
z=(b-(a-((a/b)*b)));
return z;
}
}
//Funcion maximo comun divisor recursividad
int mcd(int a,int b)
{
if(b==0)
return a;
else
return mcd(b,a%b);
}
//Funcion recursiva para sumar los 10 primeros numeros
int suma(int n) andres pico
{
if(n==0)
return 0;
else
return n+suma(n-1);
}
//Funcion recursiva para elevar un numero a un exponente
int exp(int b,int e)
{
if(e==0)
return 1;
else
return b*exp(b,e-1);
}
//Funcion para calcular el numero fibonacci
int fibo(int n)
{
if ((n==0)||(n==1))
return n;
else
return fibo(n-1)+fibo(n-2);
}
//FUNCION PARA MULTIPLICAR DOS NUMEROS
int multiplicar(int n,int b)
{
if(b==0)
return 0;
else
return multiplicar(n,b-1)+n;
}
//Funcion de los factores primos
int factores_primos(int n,int b)
{
if (n==1)
return 1;
else
{
if(n%b==0)
return b+factores_primos((n/b),b);
if(n%b!=0)
factores_primos(n,b+1);
}
}
//Funcion para invertir un numero
int inverso(int num)
{
if (num < 10)
return num;
else
return mod(num,10) * exp(10, digitos(num) - 1) + inverso(num / 10);
}
//Funcion para contar los digitos
int digitos(int num)
{
if (num < 10)
return 1;
return 1 + digitos(num/10);
}0>0>0>0>
Abrir archivos en C.
#include< stdio.h >
int main()
{
FILE *in;
char nomarch[20];
puts("Dame el nombre del archivo :D");
scanf("%s",nomarch);
if((in=fopen(nomarch,"r"))==NULL)
printf("Error al abrir el archivo %s.\n",nomarch);
else
printf("archivo %s abierto correctamente :D \n",nomarch);
fclose(in);
}
int main()
{
FILE *in;
char nomarch[20];
puts("Dame el nombre del archivo :D");
scanf("%s",nomarch);
if((in=fopen(nomarch,"r"))==NULL)
printf("Error al abrir el archivo %s.\n",nomarch);
else
printf("archivo %s abierto correctamente :D \n",nomarch);
fclose(in);
}
Leer archivos en C.
#include< stdio.h >
void lee(FILE *in);
int main(int agc,char *agv[]){
FILE *in;
if(agc>1){
if(in=fopen(*(agv+1),"r")!==NULL)
printf("ERROR al abrir el archivo %s\n",(agv+1));
else{
lee(in);
fclose(in);
}
}
else
puts("Faltan argumentos");
return 0;
}
void lee(FILE *in){
int c;
while((c=getc(in))!=EOF)
putchar(c);
}
void lee(FILE *in);
int main(int agc,char *agv[]){
FILE *in;
if(agc>1){
if(in=fopen(*(agv+1),"r")!==NULL)
printf("ERROR al abrir el archivo %s\n",(agv+1));
else{
lee(in);
fclose(in);
}
}
else
puts("Faltan argumentos");
return 0;
}
void lee(FILE *in){
int c;
while((c=getc(in))!=EOF)
putchar(c);
}
Llenar archivos en C.
#include< stdio.h >;
void llena(FILE *in);
int main(){
FILE *in;
char nomarch[20];
puts("Dame el nombre del archivo :D");
scanf("%s",nomarch);
if((in=fopen(nomarch,"w+"))==NULL)
printf("Error al abrir el archivo %s.\n",nomarch);
else
printf("archivo %s abierto correctamente :D \n",nomarch);
llena(in);
fclose(in);
}
void llena(FILE *in){
putc('H',in);
putc('E',in);
putc('L',in);
putc('L',in);
putc('O',in);
putc(' ',in);
putc('W',in);
putc('O',in);
putc('L',in);
putc('R',in);
putc('D',in);
}
void llena(FILE *in);
int main(){
FILE *in;
char nomarch[20];
puts("Dame el nombre del archivo :D");
scanf("%s",nomarch);
if((in=fopen(nomarch,"w+"))==NULL)
printf("Error al abrir el archivo %s.\n",nomarch);
else
printf("archivo %s abierto correctamente :D \n",nomarch);
llena(in);
fclose(in);
}
void llena(FILE *in){
putc('H',in);
putc('E',in);
putc('L',in);
putc('L',in);
putc('O',in);
putc(' ',in);
putc('W',in);
putc('O',in);
putc('L',in);
putc('R',in);
putc('D',in);
}
miércoles, 2 de enero de 2013
Potencia de 2 hasta 2^32 en C.
//Potencia de 2 hasta 2^32.
#include
int potencia[32];
int main()
{
potencia[0]=1;
int i;
for(i=1;i<=31;i++)
{
potencia[i]=potencia[i-1]*2;
}
for(i=0;i<=30;i++)
{
printf("%d\n",potencia[i]);
}
return 0;
}
#include
int potencia[32];
int main()
{
potencia[0]=1;
int i;
for(i=1;i<=31;i++)
{
potencia[i]=potencia[i-1]*2;
}
for(i=0;i<=30;i++)
{
printf("%d\n",potencia[i]);
}
return 0;
}
Letras de minisculas a Mayusculas y viceversa en C.
//Letras de minusculas a Mayusculas y viceversa.
#include< stdio.h >
void ingreso(char *);
void mayusculas(char *);
void minusculas(char *);
int main(void)
{
char cadena[256];
ingreso(cadena);
printf("Frase: %s\n", cadena);
mayusculas(&cadena[0]);
printf("La frase en MAYUSCULAS: %s\n",cadena);
minusculas(cadena);
printf("La frase en minusculas: %s\n",cadena);
return 0;
}
//Funcion que recibe la variable a convertir.
void ingreso(char *s)
{
printf("Programa que convierte una cadena de minusculas a mayusculas o viseversa\n ");
printf("Ingrese una frase:\n ");
gets(s);
}
//Funcion la cual convierte cualquier letra minuscula a mayuscula.
void mayusculas(char *s)
{
for( ;*s!='\0';s++)
if(*s>='a' && *s<='z')
*s-=(char)32;
}
//Funcion la cual convierte cualquier letra mayuscula a minuscula.
void minusculas(char *s)
{
while(*s!=NULL)
{
if(*s>='A' && *s<='Z')
*s+=(char)32;
s++;
}
}
#include< stdio.h >
void ingreso(char *);
void mayusculas(char *);
void minusculas(char *);
int main(void)
{
char cadena[256];
ingreso(cadena);
printf("Frase: %s\n", cadena);
mayusculas(&cadena[0]);
printf("La frase en MAYUSCULAS: %s\n",cadena);
minusculas(cadena);
printf("La frase en minusculas: %s\n",cadena);
return 0;
}
//Funcion que recibe la variable a convertir.
void ingreso(char *s)
{
printf("Programa que convierte una cadena de minusculas a mayusculas o viseversa\n ");
printf("Ingrese una frase:\n ");
gets(s);
}
//Funcion la cual convierte cualquier letra minuscula a mayuscula.
void mayusculas(char *s)
{
for( ;*s!='\0';s++)
if(*s>='a' && *s<='z')
*s-=(char)32;
}
//Funcion la cual convierte cualquier letra mayuscula a minuscula.
void minusculas(char *s)
{
while(*s!=NULL)
{
if(*s>='A' && *s<='Z')
*s+=(char)32;
s++;
}
}
Arreglo lleno y define cual es el mayor en C.
/*
* Permite llenar un arreglo, mostrarlo
* sumar todos sus elementos
* determinar el elemento que es mayor
* y buscar un elemento determinado.
*/
#include< stdio.h >
//función para llenar el arreglo
void llenar(int A[], int n)
{
int i;
int valor;
for(i=0; i {
printf("Ingrese valor %d : ",i);
scanf("%d",&valor);
A[i] = valor;
}
}
//Función para mostrar el arreglo
void mostrar(int A[], int n)
{
int i;
for(i=0; i {
printf("Valor A[%d] = %d\n",i,A[i]);
}
}
//función para sumar los elementos del arreglo
int suma(int A[], int n)
{
int i;
int s = 0;
for(i=0; i {
s = s + A[i];
}
return s;
}
//Función para determinar el elemento mayor
//del arreglo
int mayor(int A[], int n)
{
int i;
int mayorval = A[0];
for(i=0; i {
if(A[i] > mayorval)
{
mayorval = A[i];
}
}
return mayorval;
}
//Función para buscar un elemento
int buscar(int A[], int n, int e)
{
//Definimos variables
int i;
int esta = 0;
//Ciclo de análisis
for(i=0; i {
//Fácil si el valor del elemento
//es igual al parámetro e recibido
if(A[i] == e)
{
//asignamos a la variable
//el valor de i que es el
//numero de elemento que es igual
esta = i;
//Rompemos el bucle y salimos
break;
}
}
//Regresamos como valor de la función
//el valor de la variable donde fué hallado
//o de lo contrario cero que es su inicialización.
return esta;
}
//Procedimiento principal
int main()
{
//Definimos el arreglo
int arreglo[100];
//Variables para el total de elementos y valor buscado
int totalelementos, valorbuscado;
//Solicitamos info
printf("Ingrese cantidad de valores a examinar : ");
scanf("%d",&totalelementos);
//Ejecutamos las funciones llenar y mostrar.
llenar(arreglo,totalelementos);
mostrar(arreglo,totalelementos);
//Mostramos un título y ejecutamos la función sumar.
printf("La suma total de valores es %d\n",suma(arreglo,totalelementos));
//Mostramos info y llamamos a la función mayor
printf("El mayor valor es %d\n",mayor(arreglo,totalelementos));
//Solicitamos un valor para buscar
printf("Ingrese valor a buscar : ");
scanf("%d",&valorbuscado);
//Variable para obtener el resultado
int resultado = 0;
resultado = buscar(arreglo,totalelementos,valorbuscado);
//Si es mayor a cero
if (resultado>0)
{
//Informamos que fué hallado
printf("El valor %d fue hallado en la posicion %d\n",valorbuscado,resultado);
}
else
{
//Informamos que no fué hallado.
printf("El valor %d no se encuentre en el array\n",valorbuscado);
}
}
* Permite llenar un arreglo, mostrarlo
* sumar todos sus elementos
* determinar el elemento que es mayor
* y buscar un elemento determinado.
*/
#include< stdio.h >
//función para llenar el arreglo
void llenar(int A[], int n)
{
int i;
int valor;
for(i=0; i
printf("Ingrese valor %d : ",i);
scanf("%d",&valor);
A[i] = valor;
}
}
//Función para mostrar el arreglo
void mostrar(int A[], int n)
{
int i;
for(i=0; i
printf("Valor A[%d] = %d\n",i,A[i]);
}
}
//función para sumar los elementos del arreglo
int suma(int A[], int n)
{
int i;
int s = 0;
for(i=0; i
s = s + A[i];
}
return s;
}
//Función para determinar el elemento mayor
//del arreglo
int mayor(int A[], int n)
{
int i;
int mayorval = A[0];
for(i=0; i
if(A[i] > mayorval)
{
mayorval = A[i];
}
}
return mayorval;
}
//Función para buscar un elemento
int buscar(int A[], int n, int e)
{
//Definimos variables
int i;
int esta = 0;
//Ciclo de análisis
for(i=0; i
//Fácil si el valor del elemento
//es igual al parámetro e recibido
if(A[i] == e)
{
//asignamos a la variable
//el valor de i que es el
//numero de elemento que es igual
esta = i;
//Rompemos el bucle y salimos
break;
}
}
//Regresamos como valor de la función
//el valor de la variable donde fué hallado
//o de lo contrario cero que es su inicialización.
return esta;
}
//Procedimiento principal
int main()
{
//Definimos el arreglo
int arreglo[100];
//Variables para el total de elementos y valor buscado
int totalelementos, valorbuscado;
//Solicitamos info
printf("Ingrese cantidad de valores a examinar : ");
scanf("%d",&totalelementos);
//Ejecutamos las funciones llenar y mostrar.
llenar(arreglo,totalelementos);
mostrar(arreglo,totalelementos);
//Mostramos un título y ejecutamos la función sumar.
printf("La suma total de valores es %d\n",suma(arreglo,totalelementos));
//Mostramos info y llamamos a la función mayor
printf("El mayor valor es %d\n",mayor(arreglo,totalelementos));
//Solicitamos un valor para buscar
printf("Ingrese valor a buscar : ");
scanf("%d",&valorbuscado);
//Variable para obtener el resultado
int resultado = 0;
resultado = buscar(arreglo,totalelementos,valorbuscado);
//Si es mayor a cero
if (resultado>0)
{
//Informamos que fué hallado
printf("El valor %d fue hallado en la posicion %d\n",valorbuscado,resultado);
}
else
{
//Informamos que no fué hallado.
printf("El valor %d no se encuentre en el array\n",valorbuscado);
}
}
Triangulo de Pascal con Asteriscos, de dimension definida por el usuario en C.
//Triangulo de Pascal con Asteriscos, de dimension definida por el usuario.
#include < stdio.h >
int main (void)
{
int altura; /*número de filas de la pirámide*/
int opcion; /*1 y 2 dibuja pirámides y la opcion 3 para acabar el programa*/
//SALIDAS:
/*
pirámide dibujada con asteríscos. Por ejemplo son la altura es 3
y se elige la opción 1 dibujará *
***
*****
y si se elige altura 3 y opción 2 dibuja *
* *
* * *
*/
//VARIABLES:
int filas, columnas, blancos;
//INICIO
do{
printf("Elige una de las siguientes opciones:\n");
printf(" 1: Dibuja Pirámide del tipo:\n");
printf(" *\n");
printf(" ***\n");
printf(" *****\n");
printf(" 2: Dibuja Pirámide del tipo:\n");
printf(" *\n");
printf(" * *\n");
printf(" * * *\n");
printf(" 3: Salir.\n");
printf("Que opcion elige: ");
scanf("%i", &opcion);
switch(opcion)
{
case 1:
do{
printf("Introduzca el numero de filas de la piramide: ");
scanf("%i", &altura);
}
while(altura<=0);
for (filas=1; filas<=altura; filas++)
{
for (blancos=1; blancos<=altura-filas; blancos++)
{
printf(" ");
}
for (columnas=1; columnas<=2*filas-1; columnas++)
{
printf("*");
}
printf("\n");
}
break;
case 2:
do{
printf("Introduzca el numero de filas de la piramide: ");
scanf("%i", &altura);
}
while(altura<=0);
for (filas=1; filas<=altura; filas++)
{
for (blancos=1; blancos<=altura-filas; blancos++)
{
printf(" ");
}
for (columnas=1; columnas<=filas; columnas++)
{
printf("*");
}
printf("\n");
}
break;
}
}
while(!(opcion<3 br="br"> }3>
#include < stdio.h >
int main (void)
{
int altura; /*número de filas de la pirámide*/
int opcion; /*1 y 2 dibuja pirámides y la opcion 3 para acabar el programa*/
//SALIDAS:
/*
pirámide dibujada con asteríscos. Por ejemplo son la altura es 3
y se elige la opción 1 dibujará *
***
*****
y si se elige altura 3 y opción 2 dibuja *
* *
* * *
*/
//VARIABLES:
int filas, columnas, blancos;
//INICIO
do{
printf("Elige una de las siguientes opciones:\n");
printf(" 1: Dibuja Pirámide del tipo:\n");
printf(" *\n");
printf(" ***\n");
printf(" *****\n");
printf(" 2: Dibuja Pirámide del tipo:\n");
printf(" *\n");
printf(" * *\n");
printf(" * * *\n");
printf(" 3: Salir.\n");
printf("Que opcion elige: ");
scanf("%i", &opcion);
switch(opcion)
{
case 1:
do{
printf("Introduzca el numero de filas de la piramide: ");
scanf("%i", &altura);
}
while(altura<=0);
for (filas=1; filas<=altura; filas++)
{
for (blancos=1; blancos<=altura-filas; blancos++)
{
printf(" ");
}
for (columnas=1; columnas<=2*filas-1; columnas++)
{
printf("*");
}
printf("\n");
}
break;
case 2:
do{
printf("Introduzca el numero de filas de la piramide: ");
scanf("%i", &altura);
}
while(altura<=0);
for (filas=1; filas<=altura; filas++)
{
for (blancos=1; blancos<=altura-filas; blancos++)
{
printf(" ");
}
for (columnas=1; columnas<=filas; columnas++)
{
printf("*");
}
printf("\n");
}
break;
}
}
while(!(opcion<3 br="br"> }3>
martes, 1 de enero de 2013
Longitud de un texto en C
/*Programa que cuenta la longitud de palabras que hay en un texto*/
#include< stdio.h >
char cadena1[100],cadena2[100];
int main()
{
printf("Ingrese la palabra a medir: \n");
scanf("%s",cadena1);
printf("La cadena escrita mide:\n %d letras \n",cadena(cadena1,cadena2));
return 0;
}
int cadena(char a[],char b[])
{
if(a[0]!='\0'){
b[0]=a[0];
return cadena(a+1,b+1)+1;
}
b[0]='\0';
return 0;
}
#include
char cadena1[100],cadena2[100];
int main()
{
printf("Ingrese la palabra a medir: \n");
scanf("%s",cadena1);
printf("La cadena escrita mide:\n %d letras \n",cadena(cadena1,cadena2));
return 0;
}
int cadena(char a[],char b[])
{
if(a[0]!='\0'){
b[0]=a[0];
return cadena(a+1,b+1)+1;
}
b[0]='\0';
return 0;
}
Matriz de 2x2 en C
Bien aqui regresando al blog, habia perdido el acceso, aqui les dejo un programa que realice en mi escuela, estare subiendo, programas de diferentes problemas que mas dejan actualmente. Y por cierto Feliz Año Nuevo 2013! :D.
P.D. Una disculpa por no identar el codigo xD
/*Codigo para realizar dos matrices */
#include< stdio.h >
int main(void)
{
float mat1[3][2],mat2[2][3],resultado=0, resul[3][3];
int i,j,c;
for(i=0;i<3 br="br" i="i">for(j=0;j<3 br="br" j="j">resul[i][j]=0;
for(i=0;i<3 br="br" i="i">{
for(j=0;j<2 br="br" j="j">{
printf("\nintroduzca un valor mat1[%d][%d]: ",i,j);
scanf("%f", &mat1[i][j]);
}
}
for(i=0;i<2 br="br" i="i">{
for(j=0;j<3 br="br" j="j">{
printf("\nintroduzca un valor mat2[%d][%d]: ",i,j);
scanf("%f", &mat2[i][j]);
}
}
for(i=0;i<3 br="br" i="i">{
for(c=0;c<3 br="br" c="c">{
for(j=0;j<2 br="br" j="j">{
resultado=resultado+(mat1[i][j]*mat2[j][c]);
}
resul[i][c]=resultado;
resultado=0;
}
}
/*Matriz 1*/
printf("\nMatriz 1\n");
for(i=0;i<3 br="br" i="i">{
for(j=0;j<2 br="br" j="j">{
printf("\t%.2f",mat1[i][j]);
}
printf("\n");
}
/*Matriz 2*/
printf("\nMatriz 2\n");
for(i=0;i<2 br="br" i="i">{
for(j=0;j<3 br="br" j="j">{
printf("\t%.2f",mat2[i][j]);
}
printf("\n");
}
/*Matriz multiplicación*/
printf("\nMatriz resultado\n");
for(i=0;i<3 br="br" i="i">{
for(c=0;c<3 br="br" c="c">{
printf("\t%.2f",resul[i][c]);
}
printf("\n");
}
} 3>3>3>2>2>3>2>3>3>3>2>2>3>3>3>
P.D. Una disculpa por no identar el codigo xD
/*Codigo para realizar dos matrices */
#include
int main(void)
{
float mat1[3][2],mat2[2][3],resultado=0, resul[3][3];
int i,j,c;
for(i=0;i<3 br="br" i="i">for(j=0;j<3 br="br" j="j">resul[i][j]=0;
for(i=0;i<3 br="br" i="i">{
for(j=0;j<2 br="br" j="j">{
printf("\nintroduzca un valor mat1[%d][%d]: ",i,j);
scanf("%f", &mat1[i][j]);
}
}
for(i=0;i<2 br="br" i="i">{
for(j=0;j<3 br="br" j="j">{
printf("\nintroduzca un valor mat2[%d][%d]: ",i,j);
scanf("%f", &mat2[i][j]);
}
}
for(i=0;i<3 br="br" i="i">{
for(c=0;c<3 br="br" c="c">{
for(j=0;j<2 br="br" j="j">{
resultado=resultado+(mat1[i][j]*mat2[j][c]);
}
resul[i][c]=resultado;
resultado=0;
}
}
/*Matriz 1*/
printf("\nMatriz 1\n");
for(i=0;i<3 br="br" i="i">{
for(j=0;j<2 br="br" j="j">{
printf("\t%.2f",mat1[i][j]);
}
printf("\n");
}
/*Matriz 2*/
printf("\nMatriz 2\n");
for(i=0;i<2 br="br" i="i">{
for(j=0;j<3 br="br" j="j">{
printf("\t%.2f",mat2[i][j]);
}
printf("\n");
}
/*Matriz multiplicación*/
printf("\nMatriz resultado\n");
for(i=0;i<3 br="br" i="i">{
for(c=0;c<3 br="br" c="c">{
printf("\t%.2f",resul[i][c]);
}
printf("\n");
}
} 3>3>3>2>2>3>2>3>3>3>2>2>3>3>3>
Suscribirse a:
Entradas (Atom)