menu

miércoles, diciembre 28, 2016

Ejercicios 13 en C

1. Introducir una frase por teclado.Imprimirla cinco veces en filas consecutivas, pero cada impresión irá desplazada cuatro columnas hacia la derecha. Solo debes imprimir los elementos de la frase q ocupan posiciones pares.
    1. Si solo muestras la frase como va avanzando.
    2. Si cuando acaba la frase vuelves a empezar de nuevo y siempre imprimes los mismos caracteres.


#include <stdio.h>
#include <string.h>
#include <ctype.h>
#include <stdlib.h>
void main()
{
    int c,e=0,f,h=0;
    char a[255];
    do
    {
        printf("Introduce una frase: ");
        fgets(a,255,stdin);
        a[strlen(a)-1]= 0;
        f=0;
        for (c=0;c<5;c=++)
        {
            while (e+f<strlen(a))
            {
                if((e+f)%2==0)
                {
                    printf("%c",a[e+f]);
                }
                e++;
            }
            while(e<strlen(a))
            {
                if((e+f)%2==0)
                {
                    printf("%c",a[h]);
                }
                e++;
                h++;
            }
            f+=4;
            if(f>=strlen(a))
            {
                f=0;
            }
            e=0;
            h=0;
            printf("\n");
        }
        do
        {
            printf("quieres escribir otra frase, escribe s o n: ");
            fgets(a,255,stdin);//mala idea mezclar scanf y fgets, problemas al hacer bucles, fgets salto de linia
            a[strlen(a)-1]= 0;
        }
        while (strcmp(a,"s") != 0 && strcmp(a,"n") != 0);//strcmp compara
    }
    while(strcmp(a,"n") != 0);
}



2. Imprimir y sumar y contar los elementos impares que ocupan las posiciones pares de la lista aleatoria. 

#include <stdio.h>

void main()
{
    int a[50],i,suma=0,contar=0;
    for (i = 0; i< 50; i++)
    {
        a[i] = random()%101;
        if(i%2==0)
        {
            if (a[i]%2!=0)
            {
                printf("%2d\n",a[i]);
                suma=a[i]+suma;
                contar++;
            }
        }
    }
    printf("suma total de los numeros impares en posicion par: %d\nTotal de de numeros impares en posiciones pares: %d",suma, contar);
}

3. Crear aleatoriamente una lista unidimensional de 50 elementos con números aleatorios comprendidos entre 1 y 100 de tal forma que no se repita ningún elemento, y no puede haber ningún elemento que sea múltiplo de la posición que ocupa.
    #include <stdio.h>

    void main()
    {
        int a[50],c,i,h,contador;
        for (i = 0; i< 50; i++)
        {
            a[i] = random()%100+1;
            if(i != 0)
            {
                h=i;
                contador=0;
                for(c=0;c<=h;c++)
                {
                    if (a[c-1]==a[i])
                    {
                        i--;
                        contador++;
                    }
                }
                if (i != 1 && a[i]%i==0&&contador==0)
                {
                    i--;
                }
            }
        }
        for (i = 0; i< 50; i++)
        {
        printf("%2d ",a[i]);
        }
    }

    No hay comentarios:

    Publicar un comentario