ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

C语言的for循环以及一些练习

2021-01-20 07:01:04  阅读:102  来源: 互联网

标签:arr right int 练习 C语言 循环 printf main left


如何用for循环打印1到10的数字,代码如下:

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

for循环是我们使用最多的循环,所以要掌握一些基本的使用方法

如何计算 n的阶乘,代码如下:

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;
}

求10以内阶乘的和,代码如下:

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;
}

当然我们也可以用另外一种更简洁的方法:

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;
}

如何用代码实现二分查找法:

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;
}

如何编写代码,演示多个字符从两端移动,向中间汇聚:

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;
}

编写代码实现,模拟用户登录情景,并且只能登录三次。(只允许输入三次密码,如果密码正确则提示登录成,如果三次均输入错误,则退出程序:

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;
}

可以从上面的练习中,我们能知道for循环的一些使用,以及语法的一些格式。

2021.1.19
加油,明天继续努力

标签:arr,right,int,练习,C语言,循环,printf,main,left
来源: https://blog.51cto.com/15080720/2598265

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有