- do语句的语法:
- 代码示例
- 一、
- 流程框图
- 二、
- 练习
do 循环语句; while(表达式);代码示例 一、
includeint main() { //1-10 int i = 1; do { printf("%d ", i); i++; } while(i<=10); return 0; }
1 2 3 4 5 6 7 8 9 10流程框图 二、
#includeint main() { //1-10 int i = i; do { if (i == 5) break; printf("%d ", i); i++; } while(i<10); return 0; }
1 2 3 4
#includeint main() { //1-10 int i = i; do { if (i == 5) continue; printf("%d ", i); i++; } while(i<=10); return 0; }
1 2 3 4 //闪光标练习
1、计算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("ret = %dn", ret);
return 0;
}
2、计算1!+ 2!+ …+10!?
#include#include int main() { int i = 0; int n = 0; int ret = 1; int sum = 0; for (n = 1; n <= 3; n++) { ret = 1; for (i = 1; i <= n; i++) { ret = ret * i; } //n的阶乘 sum = sum + ret; } printf("sum=%dn", sum); return 0; } }
sum=9
优化:
#includeint main() { int i = 0; int n = 0; int ret = 1; int sum = 0; for (n = 1; n <= 3; n++) { ret = ret * n; sum = sum + ret; } printf("sum=%dn", sum); return 0; }
sum = 9
3、在一个有序数组中查找具体的某个数字n,编写int binsearch(int x, int v[],int n); 功能:在v[0]<=v[1]<=v[2]<=…<=v[n-1]的数组中查找x。
#includeint main() { int arr[] = { 1,2,3,4,5,6,7,8,9,10 }; int k = 7; //写一个代码,在arr数组(有序的)中找到7 int i = 0; int sz = sizeof(arr) / sizeof(arr[0]); for (i = 0; i < sz; i++) { if (k == arr[i]) { printf("找到了,下标是:%dn", i); break; } } if (i == sz) printf("找不到n"); return 0; }
找到了,下标是:6
二分查找法
#includeint main() { int arr[] = { 1,2,3,4,5,6,7,8,9,10 }; int k = 7; 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) { right = mid - 1; } else if (arr[mid] < k) { left = mid + 1; } else { printf("找到了,下标是:%dn", mid); break; } } return 0; }
找到了,下标是:6
4、编写代码,演示多个字符从两端移动,向中间汇聚。
#include#include #include #include int main() { //welcome to bit!!!!!! //#################### //w##################! //we################!! //wel##############!!! //... //welcome to bit!!!!!! char arr1[] = "welcome to china!!!!!!!"; char arr2[] = "#######################"; int left = 0; //int right = sizeof(arr1)/sizeof(arr1)[0]-2//err int right = strlen(arr1)-1; while (left<=right) { arr2[left] = arr1[left]; arr2[right] = arr1[right]; printf("%sn", arr2); //延时1秒 Sleep(500); system("cls");//执行系统命令的一个函数 - cls - 清空屏幕 left++; right--; } printf("%sn", arr2); return 0; }
编写代码实现,模拟用户登录,只能登录三次,(只允许输入三次密码,如果密码正确则提示登陆成功,如果三次均输入错误,则推出程序)
#include#include #include #include int main() { int i = 0; char password[20] = { 0 }; for (i = 0; i < 3; i++) { printf("请输入密码:"); scanf("%s", password); if (strcmp(password,"123456")==0)//不能用来比较两个字符串是否相等,应该使用一个库函数-strcmp { printf("登陆成功n"); break; } else { printf("密码错误n"); } } if (i == 3) printf("三次密码均错误,退出程序n"); return 0; }



