今天看的课三个半小时,太长了,要吸收的东西有点多
getcher用法
#includeint main() { int ret =0; char password[20]={0}; printf("请输入密码:>"); scanf("%s",password);//输入密码,并存放在password数组中 //缓冲区还剩余一个‘n’ getchar(); printf("请确认(Y/N):>"); ret = getchar(); if (ret=='Y') { printf("确认成功n"); } else { printf("确认放弃n"); } return 0; }
putchar
#includeint main() { int ch=0; while ((ch=getchar())!=EOF) { if (ch<'0'||ch>'9') continue; putchar(ch); } return 0; }
for循环
for(表达式1;表达式2;表达式3)
循环语句:
#includeint main() { int i=0; for (i=1;i<11;i++) { printf("%dn",i); } return 0; }
continue在for和while循环中的区别
#includeint main() { int i=0; for (i=1;i<11;i++) { if(i==6) //不会打印6,但也不会出现死循环,在while中会出现死循环 continue; printf("%dn",i); } return 0; }
break没区别,都会打断,跳出循环
for循环中可以省略,
下列循环几次?
#includeint main() { int i=0; int k=0; for (i=0,k=0;k=0;i++,k++) k++; //循环0次,因为此时的判断条件k是赋值0,而0是假的,故不会进入循环 return 0; }
do while 循环
do
循环语句
while
打印1到10
#includeint main() { int i=1; do { printf("%dn",i); i++; } while(i<=10); return 0; }
练习
计算n的阶乘
#includeint main() { int i=0; int n=0; int ret=1; scanf("%d",&n); for(i=1;i<=n;i++) { ret=ret*i; } printf("ret=%dn",ret); return 0; }
计算1!+2!+3!+……+n!=:
法一:
#includeint 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; } sum=ret+sum; } printf("sum=%dn",sum); return 0; }
法二:
#includeint main() { int i=0; int n=0; int ret=1; int sum=0; for (n=1;n<=3;n++) { ret=ret*n; sum=ret+sum; } printf("sum=%dn",sum); return 0;
在一个有序数组中查找具体的某个数字n。
#includeint 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]); for (i=0;i<=sz;i++) { if(k==arr[i]) { printf("找到了下标是:%dn",i); break; } } if(i==sz) printf("找不到n"); return 0; }
二分法查找:
#includeint main() { int arr[]={1,2,3,4,5,6,7,8,9,10}; int k=5; int sz=sizeof(arr)/sizeof(arr[0]); int right=sz-1; int left=0; while(left<=right) { int mid=(left+right)/2; if(arr[mid]>k) { right=mid-1; } else if(arr[mid] right) { printf("找不到n"); } return 0; }
输入密码,只能输入三次
#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; } } if(i==3) printf("密码错误,滚吧n"); return 0; }



