示例#1
0
void permutar (int A[], int size, int cp){//cp: combinaciones posibles
    int comb = 1;
    int i = 0;
    int j = 1;
    int c;

    printf("-----Permutaciones-----\n");

    while(comb <= cp/2){

        imprimir(A, size);
        
        int aux[size];
        for(c = 0; c < size; c++){
            aux[c] = A[c];
        }
        invertir(aux, size);
        intercambiar(&A[i], &A[j]);
        
        i++; j++;
        if(j%size == 0){
            j = 0;
        }
        else if(i%size == 0){
            i = 0;
        }
        comb++;
    }
}
示例#2
0
文件: palindrome.c 项目: ad1cted/UTEM
int palindrome(int num)
{
	int aux;
	aux = invertir(num);
	if(aux == num)
		return 1;
	else
		return 0;
}
示例#3
0
int main( )
{	int n;
	printf("Ingrese numero ");
	scanf("%d",&n);
	printf("La cantidad de digitos es %d\n",contar(n));

    printf("El invertido es %d\n",invertir(n));

    printf("Primer digito : %d\n",primerDig(n));
    system("pause");
}
示例#4
0
int main(void)
{
   InicializarLeds();
   Ledon();
   uint32_t i;
              for (;;) {
                for (i=0; i<6500000; i++);

                invertir();
              }

         return 0;


}
示例#5
0
char *decodificar(char *cad) {
    char *aux = cad;
    int cant;
    while(*cad) {
        while(!esDigito(*cad))
            cad++;
        if(*cad) {
            cant = *cad - '0';
            str_cpy(cad, cad+1);
            invertir(cad, cant);
            decrementar(cad, cant);
            cad+= cant;
        }
    }
    return aux;
}
示例#6
0
文件: main.c 项目: vcubells/tc2025
int main(int argc, char **argv) {
    char * cadena;
    int longitud;
    
    printf("Dame la longitud máxima: ");
    scanf("%d", &longitud);
    
    cadena = (char *) malloc(sizeof(char) * longitud);
    
    printf("Entre una cadena: ");
    scanf("%[^n]", cadena);

    //fgets(cadena, longitud, stdin);
    
    
    // Invertir una cadena
    invertir(cadena);
    
    printf("Cadena invertida = %s \n", cadena);
    
    free(cadena);
    
    return 0;
}
/* 
 * Programa que lee un archivo de imagen BMP y almacena su contenido en 
 * la estructura archivo_bmp, la cual, a su vez, guardará el header, la 
 * paleta de coloures (si la hay) y la MATRIZ (pertenenciente a la 
 * imagen real) en respectivas variables. Luego, de acuerdo a los
 * parámetros recibidos, invocará a las diferentes funciones asociadas a
 * éstos, a fin de manipular la imagen.
 * Por último, de ser necesario, se escribirá la información en un nuevo
 * archivo.
 */
int main(int argc, char *argv[]){

	FILE *bmp;
	FILE *copia_bmp;
	archivo_bmp image;

	int j=1,aux;
	char entro='N';
	char okey='F';/*F=FALSE*/
	
	/*Se recorre el arreglo de parámetros al main.*/
	while ((*(argv[j]+1)!='i') &&(j<=argc)) /*Busco -i y abro el archivo.*/
		j++;
	if ((*(argv[j])=='-')&&(*(argv[j]+1)=='i')&&(*(argv[j]+2)=='\0')){
		if ((argc-1) == j)
			ayuda(ERROR);
		else{	
			j++;
			bmp=fopen(argv[j],"r");
			if (bmp==NULL){
				printf("No se pudo abrir el archivo. \n");
				exit(1);
			}
			image=leer_bmp(bmp);
			fclose(bmp);
		}
	}
	
	for (j=1;j<argc;j++){
	    /*Se consulta por el patrón "-" + argumento + " ".*/
		if(*argv[j]=='-'){
			if (*(argv[j]+2)=='\0'){
				switch (*(argv[j]+1)){
					case '?': ayuda(OK);
					break;
					case 'h': ayuda(OK);
					break;
					case 's':	imprimir_header(image.h, image.rgb);
								okey='T';/*T=TRUE*/
					break;
					case 'p': image.matriz=invertir(image.matriz);
					break;
					case 'r': 	image.matriz=rotar(image.matriz);
								image.h.ih.width=image.matriz.max_columnas;
								image.h.ih.height=image.matriz.max_filas;
								aux=image.h.ih.XpixelsPerM;
								image.h.ih.XpixelsPerM=image.h.ih.YpixelsPerM;
								image.h.ih.YpixelsPerM=aux;
					break;
					case 'n':	image.matriz=negativo(image.matriz,image.h.ih.BitCount);
					break;
					case 'd':	image.matriz=duplicar(image.matriz,image.h.ih.BitCount);
								image.h.ih.width=image.h.ih.width*2;
								image.h.ih.height=image.h.ih.height*2;
								image.h.ih.XpixelsPerM=image.h.ih.XpixelsPerM*2;
								image.h.ih.YpixelsPerM=image.h.ih.YpixelsPerM*2;
								image.h.ih.imageSize=image.h.ih.height*image.h.ih.width;
								image.h.fh.FileSize=(image.h.ih.height*image.h.ih.width)*(image.h.ih.BitCount/8)+54;
								if(image.h.ih.BitCount<=8)
									image.h.fh.FileSize+=(4*image.h.ih.coloursUsed);
					break;
					case 'f':	image.matriz=reducir(image.matriz,image.h.ih.BitCount);
								image.h.ih.width=image.h.ih.width/2;
								image.h.ih.height=image.h.ih.height/2;
								image.h.ih.XpixelsPerM=image.h.ih.XpixelsPerM/2;
								image.h.ih.YpixelsPerM=image.h.ih.YpixelsPerM/2;
								image.h.ih.imageSize=image.h.ih.height*image.h.ih.width;
								image.h.fh.FileSize=(image.h.ih.height*image.h.ih.width)*(image.h.ih.BitCount/8)+54;
								if(image.h.ih.BitCount<=8)
									image.h.fh.FileSize+=(4*image.h.ih.coloursUsed);

					break;
					case 'b':if ((argc-1) == j)
									ayuda(ERROR);
								else{
									j++;
									/*Con la función atoi() convierto un string a entero y, 
									* utilizando abs(), me aseguro que el resultado sea siempre positivo. (1)*/
									int radio=abs(atoi(argv[j]));
									image.matriz=blur(image.matriz,image.h.ih.BitCount,radio);
								}
							
					break;
					case 'o':	if ((argc-1) == j)
									ayuda(ERROR);
								else{	
									j++;
									copia_bmp=fopen(argv[j],"w");
									entro='S'; /*Utilizo la variable entro para indicar que se recibió el parámetro -o.*/
								}
					break;
					case 'i':	if ((argc-1) == j)
									ayuda(ERROR);
								else{	
									j++;
								}
					break;
					default:	printf("\nERROR: Incorrect parameters.\n");//Si el parámetro es incorrecto se interrumpe el programa.
								ayuda(ERROR);
					}
				}else{ 
					if((*(argv[j]+1)=='l')&&(*(argv[j]+3)=='\0')){ /* Si los parámetros recibidos son lh o lv..*/
						switch (*(argv[j]+2)){								
							case 'h':	if ((argc-3) <= j)
										ayuda(ERROR);
										else{
											int width=abs(atoi(argv[j+1])); /*Vale la aclaración (1).*/
											int space=abs(atoi(argv[j+2])); /*Vale la aclaración (1).*/
											int colour=abs(atoi(argv[j+3]));/*Vale la aclaración (1).*/
											image.matriz=lineas_horizontales(image.matriz,width,space,colour);
											j+=3;
										}
							break;
							case 'v':	if ((argc-3) <= j)
											ayuda(ERROR);
										else{
											int width=abs(atoi(argv[j+1]));/*Vale la aclaración (1).*/
											int space=abs(atoi(argv[j+2]));/*Vale la aclaración (1).*/
											int colour=abs(atoi(argv[j+3]));/*Vale la aclaración (1).*/
											image.matriz=lineas_verticales(image.matriz,width,space,colour);
											j+=3;
										}
							break;
							default: 	printf("\nERROR: Parametros incorrectos.\n");//Si el parámetro es incorrecto se interrumpe el programa.
										ayuda(ERROR);
							}
					}
				}
				}else{
					/*En caso que el patrón no se cumpla, se llama a la función ayuda 
					interrumpiendo el programa a través de la función EXIT (librería stdlib.h).*/
					printf("\nERROR: Parametros incorrectos.\n\n");
					ayuda(ERROR);
				}
			}
			/* Si la condición de los siguientes if es falsa, significa 
			 * que el único parámetro recibido (además de -i) fue -s, 
			 * por lo que NO debo crear una copia*/
			if((argc!=4)){
				if(entro=='N')
					copia_bmp=fopen("out.bmp","w");
				escribir_bmp(image,copia_bmp);
				fclose(copia_bmp);
			}
			else{
				if(okey=='F'){
					if(entro=='N')
						copia_bmp=fopen("out.bmp","w");
					escribir_bmp(image,copia_bmp);
					fclose(copia_bmp);
				}
			}
			liberar_matriz(image.matriz.m,image.matriz.max_filas);
			free(image.rgb);
			return 0;
}