Lenguaje C para loop y algunos ejercicios

Cómo imprimir los números del 1 al 10 en un bucle for, el código es el siguiente:

int main()
{
    int i = 0;
        初始化  判断   调整
    for ( i = 1; i <= 10; i++)
    {
        if (i == 5)
            continue;
        printf("%d\n", i);
    }
    return 0;
}

El bucle for es el bucle que más usamos, por lo que debemos dominar algunos usos básicos

Cómo calcular el factorial de n, el código es el siguiente:

int main()
{
    int n = 0;
    int i = 0;
    int ret = 1;
    scanf("%d", &n); 
    for  (i = 1; i <= n ; i++)
    {
        ret = ret * i;
    }
    printf("ret = %d\n", ret);
    return 0;
}

Para encontrar la suma del factorial dentro de 10, el código es el siguiente:

int main()
{
    int n = 0;
    int i = 0;
    int ret = 1;
    int sum = 0;
    for (n = 1; n <= 10; n++)
    {
        ret = 1;
        for (i = 1; i <= n; i++)
        {
            ret = ret * i;
        }
        sum = sum + ret;
    }
    printf("sum = %d\n", sum);
    return 0;
}

Por supuesto, también podemos utilizar otro método más conciso:

int main()
{
    int n = 0;
    int ret = 1;
    int sum = 0;
    for (n = 1; n <= 10; n++)
    {
        ret = ret * n;
        sum = sum + ret;
    }
    //ret = 1*1=1
    //ret = 1*1*2=2
    //ret = 1*1*2*3=6
    printf("sum = %d\n", sum);
    return 0;
}

Cómo implementar la búsqueda binaria con código:

int main()
{
    int arr[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9,10 };
    int k = 17;

    int sz = sizeof(arr) / sizeof arr[0];
    int left = 0;//左下标
    int right = sz-1;//右下标

    while (left<=right)
    {
        int mid = (left + right) / 2;
        if (arr[mid] > k)
        {
            right = mid - 1;
        }
        else if (arr[mid] < k)
        {
            left = mid + 1;
        }
        else
        {
            printf("找到了\n", mid);
            break;
        }
        if (left > right)
        {
            printf("找不到\n");
        }
    }
    return 0;
}

Cómo escribir código para demostrar que varios caracteres se mueven desde ambos extremos para converger en el medio:

int main()
{
    //welcome to china!!! 
    //###################
    //w#################!
    //we###############!!
    //...
    //welcome to china!!!
    //
    //char arr[] = "abc";
    //[a,b,c,\0]
    // 0 1 2  3
    //c是4-2
    char arr1[] = "welcome to china!!!";
    char arr2[] = "###################";
    int left = 0;
    //int right = sizeof(arr1) / sizeof(arr1[0]) - 2;//err
    int right = strlen(arr1) - 1;

    while (left<=right)
    {
        arr2[left] = arr1[left];
        arr2[right] = arr1[right];
        printf("%s\n", arr2);
        //休息一秒
        Sleep(1000);
        system("cls");//执行系统命令的一个函数 cls - 清空屏幕
        left++;
        right--;
    }
    printf("%s\n", arr2);
    return 0;
}

Escriba el código para simular el escenario de inicio de sesión del usuario y solo puede iniciar sesión tres veces. (Solo se permite ingresar la contraseña tres veces. Si la contraseña es correcta, se le pedirá que inicie sesión. Si la contraseña se ingresa incorrectamente tres veces, el programa se cerrará:

int main()
{
    int i = 0;
    char pd[20] = { 0 };
    for ( i = 0; i < 3; i++)
    {
        printf("请输入密码:>");
        scanf("%s", pd);
        if (strcmp(pd ,"123456") == 0)// == 不能用来比较两个字符串是否相等,应该使用一个库函数strcmp
        {
            printf("登录成功\n");
            break;
        }
        else
        {
            printf("密码错误\n");
        }
    }
    if (i == 3)
        printf("三次密码均错误,退出程序");
    return 0;
}

De los ejercicios anteriores, podemos conocer algunos usos de los bucles for y algunos formatos de gramática.

2021.1.19
Vamos, mañana sigue trabajando duro

Supongo que te gusta

Origin blog.51cto.com/15080720/2598265
Recomendado
Clasificación