1.for循环基础
int main()
{
int i = 0;
for (i = 1; i <= 10; i++)//1.最好不在for循环体内改变变量 2.控制变量的区间最好“前闭后开”
3.初始化,判断,调整部分都可省略;若判断部分被省略,则结果为恒 为真;若被赋值,则恒为假
{
printf("%d", i);
}
return 0;
}
2.省略for循环内初始值
int main()
{
int i = 0;
int j = 0;
for (; i < 10; i++)
{
for (; j < 10; j++)
{
printf("haha\n");//省略初始值j=0,j=10时循环停止且最外层的for不再循环
}
}
return 0;
}
3.利用getchar()提取无用字符
int main()
{
int ret = 0;
int ch = 0;
char pass[20]= { 0 };
printf("请输入密码:>");
scanf("%s", pass);
while((ch=getchar())!='\n')//利用getchar提取字符的循环将不需要的字符取走,直到取完为止
{
;//空指令
}
printf("请确认(Y/N):>");
ret = getchar();
if (ret == 'Y')
{
printf("确认成功\n");
}
else
printf("失败\n");
return 0;
}
4.求循环次数(0次)
int main()
{
int k = 0;
int j = 0;
for (k = 0, j = 0; k = 0; k++, j++)//循环次数为0
//因为k被赋值后表达式结果为假,不进行循环
k++;
return 0;}
5.do while语句
int main()
{int i = 1;
do//声明做什么
{
printf("%d\n", i);
i++;
} while (i <= 10);//循环次数
return 0;
}
6.计算n个数的阶乘(输入n)
int main()
{
int i = 0;
int n = 0;
scanf("%d", &n);
int ret = 1;
for (i = 1; i <= n; i++)
{
ret = ret * i;
}
printf("%d\n", ret);
return 0;
}
7.题目:计算1!+2!+...+10!的值
int main()
{
int i = 0;
int n = 0;
int ret = 1;
int sum = 0;
for (n = 1; n <= 10; n++)
{
ret = ret * n;
sum = sum + ret;
}
printf("%d\n", sum);
return 0;
}
8.从数组中打印数字(打印7)
int main()
{
int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
char ch = &arr[10];
for(ch=1;ch<=7;ch++)
{if(ch==7)
printf("%d\n", ch);
}return 0;
}
9.二分查找法打印数组中数字(有序数组)
int main()
{
int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
int k = 8;
int sz = sizeof(arr) / sizeof(arr[0]);//计算元素个数
int left = 0;//求左下标
int right = sz-1;//求右下标
int mid = (left + right) / 2;
while (left<=right)//在区间内
{
if (arr[mid] > k)//判断中间坐标位置
{
right = mid - 1;
}
else if (arr[mid] < k)
{
left = mid + 1;
}
else
{
printf("%d\n", mid);
break;
}
}
if (left > right)
{
printf("找不到");
}
return 0;
}
10.演示代码从两端向中间打印(welcome to China)
#include
#include
#include
#includeint main()
{
char arr1[] = "Welcome to China";
char arr2[] = "################";
int left = 0;
int right = strlen(arr1)-1;//strlen计算字符串长度且会自动停止
while (left<=right)
{
arr2[left] = arr1[left];
arr2[right] = arr1[right];
printf("%s\n", arr2);
Sleep(1000);//等待1000ms
system("cls");//清空屏幕
left++;
right--;
}
return 0;
}
11.模拟输入密码,三次错误即退出程序
#include
#include
#include
#includeint main()
{
char password[20]={0};
int i = 0;
for (i = 0; i < 3; i++)
{
printf("请输入密码:>");
scanf("%s", &password);
if (strcmp(password,"123456") == 0)//比较字符串长度用strcmp函数,不能直接“==”
{
printf("登陆成功\n");
break;
}
}
if(i==3)
printf("登陆失败\n");
return 0;
}