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