学习笔记二

跟着鹏哥学编程,拿一个好offer!

今天的任务是把练习题好好写一写,编程就是要多动手做。

  1. 计算n的阶乘。

(1)for循环

#include<stdio.h>
int main()
{
    int n;
    scanf("%d", &n);
    int i ;
    int fact = 1;
    for (i = 1; i <= n ; i++)
    {
        fact *= i;//fact = fact * i;
    }
    printf("num!=%d\n",fact);
}

(2)while循环

#include<stdio.h>
int main()
{
    //while循环求n!
    int num;
    scanf("%d",&num);
    int i = 1;
    int fact = 1;
    while (i<=num)
    {
        fact *= i;
        i++;
    }
    printf("fact = %d。\n",fact);
    return 0;
}
  1. 计算1!+2!+3!+...+9!+10!。

#include <stdio.h>
int main()
{
    int i = 0;
    int sum = 0;
    int num = 0;
    int fact = 1;
    for (num = 1; num <= 10; num++)
    {
        fact = 1;
        for (i = 1; i <= num; i++)
        {
            fact *= i;//fact = fact * i;
        }
        sum = sum + fact;
    }
    printf("sum=%d\n",sum);
    return 0;
}
  1. 折半查找法的简单实现

在一个有序的数组中查找指定数字,用二分法实现该要求。

#include <stdio.h>
int main()
{
    //1 2 3 4 5 6 7 8 9 10
    int arr[] = {1,2,3,4,5,6,7,8,9,10};
    int k = 2;
    int sz = sizeof(arr) / sizeof(arr[0]); //求元素个数
    int left = 0;//坐下标
    int right = sz - 1;//右下标
    while (left<=right)
    {
        int middle = (left + right) / 2;//中间元素的下标
        if (arr[middle] > k)
        {
            right = middle - 1;
        }
        else if (arr[middle] < k)
        {
            left = middle + 1;
        }
        else
        {
            printf("找到了,下标是%d。\n", middle); 
            break;
        }
        if (left > right)
        {
            printf("没找到。\n"); break;
        }
    }
    return 0;
}
  1. 编写代码,演示多个字符从两端移动,向中间汇聚。

#include <stdio.h>
#include <string.h>
#include <Windows.h>
#include <stdlib.h>
int main()
{
    char arr1[] = "Welcome to China!!!!";
    char arr2[] = "####################";
    int left = 0;
    int i = 0;
    int right = strlen(arr1) - 1;
    while (left<=right)
    {
        arr2[left] = arr1[left];
        arr2[right] = arr1[right];
        left++;
        right--;
        printf(" %s\n", arr2);
        Sleep(1000);//延时1000ms,调用该函数需要引用Windows.h头文件
        system("CLS");//调用system()函数需要引用stdlib.h头文件,CLS意思是清屏
    }
    printf(" %s\n", arr2);
    return 0;
}

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

#include <stdio.h>
#include <string.h>
#include <Windows.h>
#include <stdlib.h>
int main()
{
    char password[] = "123456";
    char arr[20];
    int i = 0;
    /*printf("请输入密码:");
    scanf("%s",arr);*/
    for (i = 0; i < 3; i++)
    {
        printf("请输入密码:");
        scanf("%s", arr);
        if (strcmp("123456", arr) == 0)
        {
            printf("登陆成功!\n"); break;
        }
        else
        {
            printf("密码输入错误,请检查输入是否正确!\n");
            //system("cls");
        }
    }
    if (i >= 3)
    {
        Sleep(1000);
        system("cls");
        printf("退出程序!\n");
        return 0;
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值