鹏哥C语言红皮书(35-37)笔记回顾

        1.do...while循环

                do语句的语法:

                        do

                                循环语句;

                        while(表达式);

            do语句的特点

                        循环至少执行一次,使用的场景有限,所以不是经常使用.

           do语句中的continue和break

           break跳出循环,continue卡死不动

        

int main()
{
    int i =1;
    do
    {
        if(i ==5)
            continue;
        
        printf("%d",i);
        i++;
    }while(i<=10);

    return 0;
}

练习

        1.计算n的阶乘

                

int main()
{
    int i =0;
    int n =0;
    int ret = 1;

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

        2.计算1!+2!+3!+.....+10!

        

int main()
{
    int i =0;
    int n = 0;
    int ret = 1;
    int sum = 0;

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

3.在一个有序数组中查找具体的某个数字n,编写int binsearch(int x, int v[],int n;)功能;在v[0]<=v[1]<=v[2]<=....<=V[n-1]的数组中查找x

        思想:

                找出这组数据里面最中间的下标

        

int main()
{

int arr[] = {1,2,3,4,5,6,7,8,9,10};
int k = 7; //要查找的数字
//在arr这个有序的数组中查找K的值
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)
{
    left = mid +1;
}
else if (arr[mid] > k)
{
    right = mid -1;
}
else{
    printf("找到了:%d\m",mid);
    break;
}
}
if(left>right)
{
    printf("找不到了\n")
}
    return 0;
}

2.循环语句do while2

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

        

#include<stdio.h>
#include<Windows.h>
int main()
{
    char arr1[] = "welcome to bit!!!!";
    char arr2[] ="########";
    int left = 0;
    int right = strlen(arr1) - 1;

    while (left<=right){
        arr2[left] = arr1[left];
        arr2[right] = arr1[right];
        printf("%s\n",arr2);
        Sleep(1000);
        left++;
        right--;
    }
return 0;
}

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

               

//strlen 字符串函数
//strcmp 字符串函数
int main()
{
    int i =0;
    //假设正确的密码是字符串"123456"
    char password[20] = {0};
    for(i=0;i<3;i++)
    {
        printf("请输入密码:>");
        scanf("%s",password);
        //if (password == "123456") err -两个字符串比较不能使用==,应该收strcmp 专门比较字符串
        if(strcmp(password,"123456") == 0)
        {
            printf("登陆成功\n");
            break;
        }
    else{

        printf("密码错误,请重新输入!\n")
}
    }
if(i == 3)
    printf("三次密码均错误,退出程序\n")

return 0;
}

        6.数字游戏

        

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

//猜数字游戏实现
//1.自动产生一个1-100之间的随机数
//2.猜数字
    //a.猜对了,恭喜你,游戏结束
    //b.你猜错了,会告诉你猜小了,继续猜直到猜对
//3.游戏一直玩,除非退出游戏

void menu()
{

	            printf("****************************\n");
				printf("********   1.play  *********\n");
				printf("********   0.exit  *********\n");
				printf("****************************\n");
}
void game()
{
	            //猜数字游戏的实现
				//1.生成随机数
				//rand函数返回一个0-32767之间的数字
				//但是数字不够随机
				//时间 -时间戳

    int ret = rand()
printf("%d\n", ret);
				//2.猜数字
			}
			int main()
			{
				int input = 0;
				srand((unsigned int)time(NULL));
				do
				{
					menu();//打印菜单
					printf("请选择:>");
					scanf("%d", &input);
					switch (input)
					{
					case 1:
						game();
						break;
					case 0:
						printf("退出游戏\n");
						break;
					default:
						printf("选择错误,请重新选择\n");
						break;
					}
				} while (input);
				return 0;
			};
		

}

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值