for循环
语法:for(表达式1;表达式2;表达式3)
循环语句
打印1-10
int main()
{
int i = 0;
for (i = 1; i <= 10; i++)
printf("%d ", i);
return 0;
}
do while循环语句
语法:do
循环语句;
while(表达式);
打印1-10
int main()
{
int i = 1;
do
{
printf("%d ", i);
i++;
} while (i<=10);
return 0;
}
计算n的阶乘
int main()
{
int n = 0;
scanf("%d", &n);
int i = 0;
int ret = 1;
for (i = 1; i <= n; i++)
{
ret = ret * i;
}
printf("%d\n", ret);
return 0;
}
计算 1!+2!+3!+…+10!
int main()
{
int n = 0;
int i = 0;
int sum = 0;
for (n = 1; n <= 10; n++)
{
int ret = 1;
for (i = 1; i <= n; i++)
{
ret = ret * i;
}
sum += ret;
}
printf("%d\n", sum);
return 0;
}
int main()
{
int n = 0;
int i = 0;
int ret = 1;
int sum = 0;
for (n = 1; n <= 10; n++)
{
ret = ret * n;
sum += ret;
}
printf("%d\n", sum);
return 0;
}
在一个有序数组中查找具体的某个数字n
int main()
{
int arr[] = { 1,2,3,4,5,6,7,8,9,10 };//升序
int k = 7;
int i = 0;
for (i = 0; i < 10; i++)
{
if (arr[i] == k)
{
printf("找到了,下标是:%d\n", i);
break;
}
}
if (i == 10)
{
printf("找不到了\n");
}
return 0;
}
二分查找算法
int main()
{
int arr[] = { 1,2,3,4,5,6,7,8,9,10 };//升序
int k = 7;
int i = 0;
int sz = sizeof(arr) / sizeof(arr[0]);
//1
int left = 0;
int right = sz - 1;
int flag = 0;
//2
while (left<=right)
{
int mid = (left + right) / 2;
if (arr[mid] == k)
{
printf("找到了,下标是:%d\n",mid);
flag = 1;
break;
}
else if (arr[mid] < k)
{
left = mid + 1;
}
else
{
right = mid - 1;
}
}
if (flag == 0)
{
printf("没找到\n");
}
return 0;
}
编写代码,演示多个字符从两端移动,向中间汇聚welcome to bit!!!
#include <string.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);//单位是毫秒
system("cls");
left++;
right--;
}
printf("%s\n", arr2);
return 0;
}
输入三次密码判断是否正确
//假设密码是"123456"
#include <string.h>
int main()
{
int i = 0;
char password[20] = { 0 };
int flag = 0;
for (i = 0; i < 3; i++)
{
printf("请输入密码:>");
scanf("%s", password);
//判断密码是否正确
//两个字符串比较相等是不能使用==的,应该使用strcmp库函数
//strcmp返回0表示2个字符串相等
//strcmp返回>0的数字,表示第一个字符串大于第二个字符串
//strcmp返回<0的数字,表示第一个字符串小于第二个字符串
if (strcmp(password, "123456") == 0)
{
printf("登录成功\n");
flag = 1;
break;
}
else
{
printf("密码错误\n");
}
}
if (flag == 0)
printf("退出程序\n");
return 0;
}